From 699c93a27f9ea02d143c9a506b4fb361b840fe0d Mon Sep 17 00:00:00 2001 From: Rizky Date: Wed, 8 May 2024 22:26:09 +0700 Subject: [PATCH] fix --- app/srv/api/prod.ts | 7 +++++++ app/srv/core/main.js | 2 +- app/web/src/nova/ed/logic/code-loader.ts | 8 ++++++++ app/web/src/nova/ed/logic/ed-global.ts | 1 + app/web/src/nova/ed/panel/popup/script/monaco.tsx | 1 + app/web/src/utils/script/typings.ts | 8 ++++++-- 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/srv/api/prod.ts b/app/srv/api/prod.ts index b0086ea6..7077110d 100644 --- a/app/srv/api/prod.ts +++ b/app/srv/api/prod.ts @@ -30,6 +30,13 @@ export const _ = { const action = pathname.split("/")[1]; switch (action) { + case "prisma.ext.d.ts": { + const path = dir.path( + `app/srv/ws/sync/code/templates/typings/prisma_ext_d_ts` + ); + const file = Bun.file(path); + return new Response(file); + } case "type_def": { const path = dir.data(`/code/${site_id}/site/typings.d.ts`); const file = Bun.file(path); diff --git a/app/srv/core/main.js b/app/srv/core/main.js index c605cb19..f9102fd0 100644 --- a/app/srv/core/main.js +++ b/app/srv/core/main.js @@ -93,7 +93,7 @@ Error generating stack: `+o.message+` ${cg(e,t.mode)} ${Q0(e,t.mode)} ${pg(e,t.mode)} - `,(t?.hover||t?.active)&&dg({item:e,hover:t?.hover,active:t?.active}),K0(e,t.mode)])}catch(n){console.log(n)}return cx([])};var gg=A(Z()),yo=(e,t,n,r,i)=>{let o=t.item,l;o.component?.style&&(l={style:o.component.style,className:pf(o.component.style,{mode:e.mode})});let s={className:pf(o,{mode:e.mode}),inherit:l},c={},a=t.item.childs,u;return t.item.type==="text"?(u=null,s.dangerouslySetInnerHTML={__html:t.item.html||""}):u=Array.isArray(a)&&a?.map(d=>{if(!d)return null;let{id:f}=d,p=n?e.layout?.meta[f]:e.meta[f];return p?(0,gg.jsx)(Xt,{meta:p,is_layout:n,passprop:{...r},depth:i+1},f):null}),s.children=u,t.item.adv?.html?(delete s.children,s.dangerouslySetInnerHTML={__html:t.item.adv?.html}):t.item.adv?.js&&!t.item.adv.js.includes("children")&&(delete s.children,delete s.dangerouslySetInnerHTML),{props:s,text_props:c}};var xy=A(ge());var _y=A(xf());var Yr={NORMAL:0,WILDCARD:1,PLACEHOLDER:2};function Ms(e={}){let t={options:e,rootNode:fy(),staticRoutesMap:{}},n=r=>e.strictTrailingSlash?r:r.replace(/\/$/,"")||"/";if(e.routes)for(let r in e.routes)cy(t,n(r),e.routes[r]);return{ctx:t,lookup:r=>zS(t,n(r)),insert:(r,i)=>cy(t,n(r),i),remove:r=>DS(t,n(r))}}function zS(e,t){let n=e.staticRoutesMap[t];if(n)return n.data;let r=t.split("/"),i={},o=!1,l=null,s=e.rootNode,c=null;for(let a=0;a{},db:null,api:null,init_local_effect:{}},page:{history:{id:"",show:!1},root_id:"root",cur:FS,doc:null,list:{},building:!1,meta:{},entry:[],tree:[],render:()=>{}},comp:{doc:null,item:null,loaded:{},list:{},group:{}},code:{},global_prop:[],ui:{monaco:null,comp_editable:localStorage.getItem("prasi-comp-editable")==="yes",zoom:localStorage.zoom||"100%",side:{prop:!0},layout:{left:parseInt(localStorage.getItem("prasi-layout-left")||"250"),right:parseInt(localStorage.getItem("prasi-layout-right")||"250")},prevent_indent_hook:!1,syncing:!1,tree:{item_loading:[],search:"",search_ref:null,search_mode:{Name:!0,JS:!1,HTML:!1,CSS:!1},rename_id:"",open:{}},popup:{file:{enabled:!1,open:!1,picker:{value:"",on_pick:!1,multi:!1},path:"/",expanded:JSON.parse(localStorage.getItem("panel-file-expanded")||"{}"),entry:{},selected:new Set,action:null,file_renaming:"",file_ctx_menu_event:null,tree:[],tree_renaming:"",tree_ctx_path:"",tree_ctx_menu_event:null,preview:!0,upload:{started:!1,progress:{}}},code:{init:!1,open:!1,name:"site",log:"",loading:!1,startup_status:"init",error:!1,show_log:!1,list:{}},page:{open:null,form:null},script:{open:!1,mode:"js",lastMode:"js",type:"item",prop_kind:"",prop_name:"",on_close:()=>{},typings:{status:"ok",err_msg:""},wb_render:()=>{}},site:null,site_form:null,comp:{preview_id:"",open:null,import:!1},comp_group:null,api:{open:!1}}}};var js=e=>({isMobile:e.mode==="mobile",isDesktop:e.mode==="desktop",isEditor:location.pathname.startsWith("/ed/")});var sr=A(ge());var at=window;var US=tf("prasi-cache","prasi-cache-store"),Eo={timeout:null,store:US},Fs=(e,t)=>{let n=[...dy(t,"navigate(",")"),...dy(t,"href = ",";")],r=e.page.cur.id;e.page.navs[r]||(e.page.navs[r]=new Set);for(let i of n)e.page.navs[r].add(i);clearTimeout(Eo.timeout),Eo.timeout=setTimeout(()=>{e.on_nav_loaded&&e.on_nav_loaded({urls:Array.from(e.page.navs[r])})},100)},dy=(e,t,n)=>{let r=0,i=0,o=[];for(;;){let l=e.indexOf(t,r);if(i=r,l>=0){let s=e[l+t.length];if(s==='"'||s==="'"||s==="`"){let c=e.indexOf(`${s}${n}`,l+t.length+1),a=e.substring(l+t.length+1,c);r=c+2+n.length,o.push(a)}}if(i===r)break}return o};var lr=A(ge());var my=A(df()),or=A(ge());var kf=A(Z()),hy=(e,t,n,r)=>i=>{let[o,l]=(0,or.useState)({}),s=i.internal_key;n.item.script||(n.item.script={});let c=n.item.script;s&&(n.item.script_keyed||(n.item.script_keyed={}),n.item.script_keyed[s]||(n.item.script_keyed[s]={}),c=n.item.script_keyed[s]),c.passprop||(c.passprop={});let a={};if(c.passprop){let f=!1;for(let[p,g]of Object.entries(i))["children","key"].includes(p)||(f=!0,a[p]=g,c.passprop[p]={end:0,start:0,value:g})}let u={...r,...a};if(!Array.isArray(i.children)&&(0,or.isValidElement)(i.children)&&typeof i.children=="object"){let f=(0,my.default)(i.children,"props.meta.item.component.props.child.content.childs");if(Array.isArray(f)){let p=!0;for(let g of f)!(0,or.isValidElement)(g)&&typeof g=="object"||(p=!1);if(p)return f.map(g=>{let _=e.meta[g.id];if(_||(e.meta[g.id]={item:g},_=e.meta[g.id]),_){if(Object.keys(_.item).length<=3&&_.mitem){let x={..._.item},h=_.mitem.toJSON();_.item={...h,...x}}return(0,kf.jsx)(Xt,{is_layout:t,meta:_,passprop:u,parent_key:i.internal_key},g.id)}return null})}}if(!Array.isArray(i.children)&&!(0,or.isValidElement)(i.children)&&typeof i.children=="object"){let f=i.children.id;if(f){let p=e.meta[f];if(!p){e.meta[f]={item:i.children},p=e.meta[f];let g=p.item.component?.id;g&&e.comp.load(g).then(_=>{if(_){for(let[h,m]of Object.entries(_)){let y=p.item;y[h]||(y[h]=m)}let x=p.item.component?.props;for(let[h,m]of Object.entries(_.component?.props||{}))x[h]||(x[h]=m);l({})}})}return(0,kf.jsx)(Xt,{is_layout:t,meta:p,passprop:u,parent_key:i.internal_key})}}return Sf(i,u,s?{parent_key:s}:void 0)},Sf=(e,t,n)=>{let r={};if(Array.isArray(e)?r.children=e:r=e,Array.isArray(r.children)){let i=[];for(let o of r.children)i.push(py(o,r,t,n));return i}return py(r.children,r,t,n)},py=(e,t,n,r)=>{if((0,or.isValidElement)(e)){let i={...t};return delete i.children,{...e,props:{...e.props,...r,passprop:{...n,...i}}}}return e};var ei={},gy=(e,t,n)=>r=>{let i=["localhost","prasi.avolut.com"].includes(location.hostname)&&location.pathname.startsWith("/ed/"),o=n.item.id,{children:l,parent_key:s}=r,c=e.script?.init_local_effect,a=t?e.layout?.meta:e.meta,u=(0,lr.useRef)(ei[o]?ei[o]:r.value),[d,f]=(0,lr.useState)({}),p=u.current;return p.render=()=>{window.prasiContext.render?window.prasiContext.render():f({})},Us(e,n,n.script?.scope,s),r.hook&&r.hook(p),(0,lr.useEffect)(()=>{if(n.parent?.instance_id&&a){let _=a[n.parent?.instance_id];if(_&&_.instances){for(let[x,h]of Object.entries(_.instances[n.parent.instance_id]))if(h===n.item.id){o=x;break}}}return!c[o]&&(typeof c=="object"&&(c[o]=!0),(async()=>r.effect&&(await r.effect(p),i&&(ei[o]=p)))()),()=>{}},[...r.deps||[],location.pathname]),(0,lr.useEffect)(()=>{i&&ei[o]===null&&(async()=>r.effect&&(await r.effect(p),i&&(ei[o]=p)))()},[ei[o]]),Sf(l,{...n.script?.scope,[r.name]:p})};var Ef=A(Z()),yy=(e,t,n,r,i,o)=>{let l=yo(e,t,n,r,i);e.visit&&e.visit(t,l),t.script?t.script.scope=r:t.script={scope:r,result:null,Local:gy(e,n,t),PassProp:hy(e,n,t,r)};let s=t.script,c=window.exports,a={useEffect:sr.useEffect,children:l.props.children,props:l.props,Local:s?.Local,db:e.site.db,api:e.site.api,PassProp:s?.PassProp,ErrorBox:Nt,newElement:()=>{},render:f=>{let p=f;if((0,sr.isValidElement)(f)&&f.props.children){let g=x=>{let h=!1,m=[];if((0,sr.isValidElement)(x)){if(x.type===t.script?.PassProp)return{should_replace:!0,el:{...x,props:{...x.props,internal_key:x.key}}};if(Array.isArray(x.props?.children))for(let y of x.props?.children)if(Array.isArray(y)){let v=[],S=!1;for(let R of y){let k=g(R);k.should_replace?(v.push(k.el),S=!0):v.push(R)}S?(h=!0,m.push(v)):m.push(y)}else typeof y=="object"?y.type===t.script?.PassProp&&(h=!0,m.push({...y,props:{...y.props,internal_key:y.props.key}})):m.push(y)}return{should_replace:h,el:{...x,props:{...x.props,children:m}}}},_=g(f);_.should_replace&&(p=_.el)}s&&(s.result=(0,Ef.jsx)(sr.Suspense,{children:p}))},params,...js(e),...c,...r,_meta:e.meta,_item:t.item,_syncm:typeof syncronize<"u"?syncronize:void 0};if(typeof r=="object"){for(let[f,p]of Object.entries(r))if(typeof p=="object"&&p&&p._jsx){let g=p;a[f]=(0,Ef.jsx)(BS,{fn:g.fn,passprop:{...r},meta:t})}}!at.isEditor&&t.item.adv?.js&&Fs(e,t.item.adv.js);let u=t.item.adv?.jsBuilt||"",d=Rf(u,bf)||"";try{new Function(...Object.keys(a),"___js",`// ${t.item.name}: ${t.item.id} + `,(t?.hover||t?.active)&&dg({item:e,hover:t?.hover,active:t?.active}),K0(e,t.mode)])}catch(n){console.log(n)}return cx([])};var gg=A(Z()),yo=(e,t,n,r,i)=>{let o=t.item,l;o.component?.style&&(l={style:o.component.style,className:pf(o.component.style,{mode:e.mode})});let s={className:pf(o,{mode:e.mode}),inherit:l},c={},a=t.item.childs,u;return t.item.type==="text"?(u=null,s.dangerouslySetInnerHTML={__html:t.item.html||""}):u=Array.isArray(a)&&a?.map(d=>{if(!d)return null;let{id:f}=d,p=n?e.layout?.meta[f]:e.meta[f];return p?(0,gg.jsx)(Xt,{meta:p,is_layout:n,passprop:{...r},depth:i+1},f):null}),s.children=u,t.item.adv?.html?(delete s.children,s.dangerouslySetInnerHTML={__html:t.item.adv?.html}):t.item.adv?.js&&!t.item.adv.js.includes("children")&&(delete s.children,delete s.dangerouslySetInnerHTML),{props:s,text_props:c}};var xy=A(ge());var _y=A(xf());var Yr={NORMAL:0,WILDCARD:1,PLACEHOLDER:2};function Ms(e={}){let t={options:e,rootNode:fy(),staticRoutesMap:{}},n=r=>e.strictTrailingSlash?r:r.replace(/\/$/,"")||"/";if(e.routes)for(let r in e.routes)cy(t,n(r),e.routes[r]);return{ctx:t,lookup:r=>zS(t,n(r)),insert:(r,i)=>cy(t,n(r),i),remove:r=>DS(t,n(r))}}function zS(e,t){let n=e.staticRoutesMap[t];if(n)return n.data;let r=t.split("/"),i={},o=!1,l=null,s=e.rootNode,c=null;for(let a=0;a{},db:null,api:null,init_local_effect:{}},page:{history:{id:"",show:!1},root_id:"root",cur:FS,doc:null,list:{},building:!1,meta:{},entry:[],tree:[],render:()=>{}},comp:{doc:null,item:null,loaded:{},list:{},group:{}},code:{},global_prop:[],ui:{monaco:null,comp_editable:localStorage.getItem("prasi-comp-editable")==="yes",zoom:localStorage.zoom||"100%",side:{prop:!0},layout:{left:parseInt(localStorage.getItem("prasi-layout-left")||"250"),right:parseInt(localStorage.getItem("prasi-layout-right")||"250")},prevent_indent_hook:!1,syncing:!1,tree:{item_loading:[],search:"",search_ref:null,search_mode:{Name:!0,JS:!1,HTML:!1,CSS:!1},rename_id:"",open:{}},popup:{file:{enabled:!1,open:!1,picker:{value:"",on_pick:!1,multi:!1},path:"/",expanded:JSON.parse(localStorage.getItem("panel-file-expanded")||"{}"),entry:{},selected:new Set,action:null,file_renaming:"",file_ctx_menu_event:null,tree:[],tree_renaming:"",tree_ctx_path:"",tree_ctx_menu_event:null,preview:!0,upload:{started:!1,progress:{}}},code:{init:!1,open:!1,name:"site",log:"",loading:!1,startup_status:"init",error:!1,show_log:!1,list:{}},page:{open:null,form:null},script:{open:!1,mode:"js",lastMode:"js",type:"item",prop_kind:"",prop_name:"",on_close:()=>{},typings:{status:"ok",err_msg:""},wb_render:()=>{}},site:null,site_form:null,comp:{preview_id:"",open:null,import:!1},comp_group:null,api:{open:!1}}}};var js=e=>({isMobile:e.mode==="mobile",isDesktop:e.mode==="desktop",isEditor:location.pathname.startsWith("/ed/")});var sr=A(ge());var at=window;var US=tf("prasi-cache","prasi-cache-store"),Eo={timeout:null,store:US},Fs=(e,t)=>{let n=[...dy(t,"navigate(",")"),...dy(t,"href = ",";")],r=e.page.cur.id;e.page.navs[r]||(e.page.navs[r]=new Set);for(let i of n)e.page.navs[r].add(i);clearTimeout(Eo.timeout),Eo.timeout=setTimeout(()=>{e.on_nav_loaded&&e.on_nav_loaded({urls:Array.from(e.page.navs[r])})},100)},dy=(e,t,n)=>{let r=0,i=0,o=[];for(;;){let l=e.indexOf(t,r);if(i=r,l>=0){let s=e[l+t.length];if(s==='"'||s==="'"||s==="`"){let c=e.indexOf(`${s}${n}`,l+t.length+1),a=e.substring(l+t.length+1,c);r=c+2+n.length,o.push(a)}}if(i===r)break}return o};var lr=A(ge());var my=A(df()),or=A(ge());var kf=A(Z()),hy=(e,t,n,r)=>i=>{let[o,l]=(0,or.useState)({}),s=i.internal_key;n.item.script||(n.item.script={});let c=n.item.script;s&&(n.item.script_keyed||(n.item.script_keyed={}),n.item.script_keyed[s]||(n.item.script_keyed[s]={}),c=n.item.script_keyed[s]),c.passprop||(c.passprop={});let a={};if(c.passprop){let f=!1;for(let[p,g]of Object.entries(i))["children","key"].includes(p)||(f=!0,a[p]=g,c.passprop[p]={end:0,start:0,value:g})}let u={...r,...a};if(!Array.isArray(i.children)&&(0,or.isValidElement)(i.children)&&typeof i.children=="object"){let f=(0,my.default)(i.children,"props.meta.item.component.props.child.content.childs");if(Array.isArray(f)){let p=!0;for(let g of f)!(0,or.isValidElement)(g)&&typeof g=="object"||(p=!1);if(p)return f.map(g=>{let _=e.meta[g.id];if(_||(e.meta[g.id]={item:g},_=e.meta[g.id]),_){if(Object.keys(_.item).length<=3&&_.mitem){let x={..._.item},h=_.mitem.toJSON();_.item={...h,...x}}return(0,kf.jsx)(Xt,{is_layout:t,meta:_,passprop:u,parent_key:i.internal_key},g.id)}return null})}}if(!Array.isArray(i.children)&&!(0,or.isValidElement)(i.children)&&typeof i.children=="object"){let f=i.children.id;if(f){let p=e.meta[f];if(!p){e.meta[f]={item:i.children},p=e.meta[f];let g=p.item.component?.id;g&&e.comp.load(g).then(_=>{if(_){for(let[h,m]of Object.entries(_)){let y=p.item;y[h]||(y[h]=m)}let x=p.item.component?.props;for(let[h,m]of Object.entries(_.component?.props||{}))x[h]||(x[h]=m);l({})}})}return(0,kf.jsx)(Xt,{is_layout:t,meta:p,passprop:u,parent_key:i.internal_key})}}return Sf(i,u,s?{parent_key:s}:void 0)},Sf=(e,t,n)=>{let r={};if(Array.isArray(e)?r.children=e:r=e,Array.isArray(r.children)){let i=[];for(let o of r.children)i.push(py(o,r,t,n));return i}return py(r.children,r,t,n)},py=(e,t,n,r)=>{if((0,or.isValidElement)(e)){let i={...t};return delete i.children,{...e,props:{...e.props,...r,passprop:{...n,...i}}}}return e};var ei={},gy=(e,t,n)=>r=>{let i=["localhost","prasi.avolut.com"].includes(location.hostname)&&location.pathname.startsWith("/ed/"),o=n.item.id,{children:l,parent_key:s}=r,c=e.script?.init_local_effect,a=t?e.layout?.meta:e.meta,u=(0,lr.useRef)(ei[o]?ei[o]:r.value),[d,f]=(0,lr.useState)({}),p=u.current;return p.render=()=>{window.prasiContext.render?window.prasiContext.render():f({})},Us(e,n,n.script?.scope,s),r.hook&&r.hook(p),(0,lr.useEffect)(()=>{if(n.parent?.instance_id&&a){let _=a[n.parent?.instance_id];if(_&&_.instances){for(let[x,h]of Object.entries(_.instances[n.parent.instance_id]))if(h===n.item.id){o=x;break}}}return!c[o]&&(typeof c=="object"&&(c[o]=!0),(async()=>r.effect&&(await r.effect(p),i&&(ei[o]=p)))()),()=>{}},[...r.deps||[],location.pathname]),(0,lr.useEffect)(()=>{i&&ei[o]===null&&(async()=>r.effect&&(await r.effect(p),i&&(ei[o]=p)))()},[ei[o]]),Sf(l,{...n.script?.scope,[r.name]:p})};var Ef=A(Z()),yy=(e,t,n,r,i,o)=>{let l=yo(e,t,n,r,i);e.visit&&e.visit(t,l),t.script?t.script.scope=r:t.script={scope:r,result:null,Local:gy(e,n,t),PassProp:hy(e,n,t,r)};let s=t.script,c=window.exports,a={useEffect:sr.useEffect,children:l.props.children,props:l.props,Local:s?.Local,db:e.site.db,api:e.site.api,PassProp:s?.PassProp,ErrorBox:Nt,newElement:()=>{},render:f=>{let p=f;if((0,sr.isValidElement)(f)&&f.props.children){let g=x=>{let h=!1,m=[];if((0,sr.isValidElement)(x)){if(x.type===t.script?.PassProp)return{should_replace:!0,el:{...x,props:{...x.props,internal_key:x.key}}};if(Array.isArray(x.props?.children))for(let y of x.props?.children)if(Array.isArray(y)){let v=[],S=!1;for(let R of y){let k=g(R);k.should_replace?(v.push(k.el),S=!0):v.push(R)}S?(h=!0,m.push(v)):m.push(y)}else typeof y=="object"?y.type===t.script?.PassProp&&(h=!0,m.push({...y,props:{...y.props,internal_key:y.props.key}})):m.push(y)}return{should_replace:h,el:{...x,props:{...x.props,children:m}}}},_=g(f);_.should_replace&&(p=_.el)}s&&(s.result=(0,Ef.jsx)(sr.Suspense,{children:p}))},params,...js(e),...c,...r,_meta:e.meta,_item:t.item,_syncm:typeof syncronize<"u"?syncronize:void 0};if(typeof r=="object"){for(let[f,p]of Object.entries(r))if(typeof p=="object"&&p&&p._jsx){let g=p;a[f]=(0,Ef.jsx)(BS,{fn:g.fn,passprop:{...r},meta:t})}}!at.isEditor&&t.item.adv?.js&&Fs(e,t.item.adv.js);let u=t.item.adv?.jsBuilt||"",d=Rf(u,bf)||"";try{new Function(...Object.keys(a),"___js",`// ${t.item.name}: ${t.item.id} try { ${d} } catch(e) { diff --git a/app/web/src/nova/ed/logic/code-loader.ts b/app/web/src/nova/ed/logic/code-loader.ts index 9057bf67..9a2d56a8 100644 --- a/app/web/src/nova/ed/logic/code-loader.ts +++ b/app/web/src/nova/ed/logic/code-loader.ts @@ -46,6 +46,14 @@ export const loadTypings = async (p: PG) => { p.render(); } }), + fetch(`/prod/${id_site}/_prasi/prisma.ext`) + .catch(() => {}) + .then(async (res) => { + if (res) { + p.prisma_ext = (await res.text()).replace("./prisma", "ts:prisma"); + p.render(); + } + }), ]); }; diff --git a/app/web/src/nova/ed/logic/ed-global.ts b/app/web/src/nova/ed/logic/ed-global.ts index d2df0629..2f95c331 100644 --- a/app/web/src/nova/ed/logic/ed-global.ts +++ b/app/web/src/nova/ed/logic/ed-global.ts @@ -153,6 +153,7 @@ export const EDGlobal = { site_exports: {} as Record, site_dts: "", site_dts_entry: {} as any, + prisma_ext: "", script: { site_types: {} as Record, loaded: false, diff --git a/app/web/src/nova/ed/panel/popup/script/monaco.tsx b/app/web/src/nova/ed/panel/popup/script/monaco.tsx index 3ee373a9..4714d39c 100644 --- a/app/web/src/nova/ed/panel/popup/script/monaco.tsx +++ b/app/web/src/nova/ed/panel/popup/script/monaco.tsx @@ -187,6 +187,7 @@ export const EdScriptMonaco: FC<{}> = () => { site_dts: p.site_dts, site_dts_entry: p.site_dts_entry, site_exports: p.site_exports, + prisma_ext: p.prisma_ext, script: { siteTypes: p.script.site_types, }, diff --git a/app/web/src/utils/script/typings.ts b/app/web/src/utils/script/typings.ts index 52f8fd3c..3ca120a0 100644 --- a/app/web/src/utils/script/typings.ts +++ b/app/web/src/utils/script/typings.ts @@ -1,6 +1,5 @@ import type { OnMount } from "@monaco-editor/react"; import { w } from "../types/general"; -import { prismaExtendType } from "./prisma-extend"; import { baseTypings } from "./types/base"; import { extractProp } from "./types/prop"; export type MonacoEditor = Parameters[0]; @@ -39,6 +38,7 @@ export const registerSiteTypings = ( export const monacoTypings = async ( p: { site_dts: string; + prisma_ext: string; site_dts_entry: any; site: { api_url: string }; site_exports: Record; @@ -133,6 +133,8 @@ ${( apiPath = "gen/srv/api/srv"; } + register(monaco, p.prisma_ext, "ts:prisma.ext"); + register( monaco, `\ @@ -151,8 +153,10 @@ import "./api" import type * as SRVAPI from "${apiPath}";` )} +import { PrismaExtend } from "ts:prisma.ext" + declare global { - const db: prisma.PrismaClient & ${prismaExtendType}; + const db: prisma.PrismaClient & PrismaExtend; ${baseTypings}