diff --git a/app/srv/core/main.js b/app/srv/core/main.js index be26fc74..dcbe19ee 100644 --- a/app/srv/core/main.js +++ b/app/srv/core/main.js @@ -99,10 +99,12 @@ Error generating stack: `+o.message+` try { ${p} } catch(e) { - console.error("Error at item ${t.item.name}:", ___js); + console.error("Error at item ${t.item.name}: +", ___js); console.error(e); } - `)(...Object.values(u),t.item.adv?.js)}catch(f){console.error(`Error at item ${t.item.name}:`,t.item.adv?.js),console.error(f)}Kl(e,t,r,o)},aE=({fn:e,meta:t,passprop:n})=>e({passprop:n,meta:t}),Uf={"stroke-width":"strokeWidth","fill-rule":"fillRule","clip-rule":"clipRule","stroke-linejoin":"strokeLinejoin","stroke-linecap":"strokeLinecap","clip-path":"clipPath"},Bf=(e,t)=>{let n=e;for(let[r,i]of Object.entries(t))n=n.replaceAll(r,i);return n};var jy=P(G());var zy=(e,t,n,r,i,o)=>{if(t.item.component?.id){let s=t.item.script;if(o?(t.item.script_keyed||(t.item.script_keyed={}),t.item.script_keyed[o]||(t.item.script_keyed[o]={}),s=t.item.script_keyed[o]):(t.item.script||(t.item.script={}),s=t.item.script),!s)return;let c={...window.exports,db:e.site.db,api:e.site.api,...Gl(e),...r,params};s.props={};let u=new Set;if(t.item.component.props){let a={};for(let[p,f]of Object.entries(t.item.component.props))try{if(f.meta?.type==="content-element"){let m={_jsx:!0,fn:h=>{let y=f.content?.id;if(y){let v=n?e.layout?.meta[y]:e.meta[y];if(!v)return null;let S=t.instances;if(!h.meta.item.originalId||!S||!S[t.item.id])return null;let k=h.meta.item.originalId;if(v.mitem&&(f.jsxCalledBy&&(!f.jsxCalledBy.includes(k)||f.jsxCalledBy.length!==2)||!f.jsxCalledBy)){let R=t.mitem?.get("component")?.get("props")?.get(p);if(R){let O=R.get("jsxCalledBy");!O||typeof O!="object"?R.set("jsxCalledBy",[t.item.id,k]):Array.isArray(O)&&(!O.includes(k)||O.length!==2||O[0]!==t.item.id||O[1]!==k)&&R.set("jsxCalledBy",[t.item.id,k])}}return(0,jy.jsx)(en,{meta:v,passprop:h.passprop,is_layout:n,depth:i+1})}return null}};c[p]=m,r&&(r[p]=m);continue}if(f.value&&Zl(e,f.value),!f.valueBuilt&&f.value&&t.mitem){let m=t.mitem?.get("component")?.get("props")?.get(p);if(m){uE(m,f.value);return}}let d=f.valueBuilt||"",g=Bf(d,Uf)||"",w=new Function(...Object.keys(c),`// [${t.item.name}] ${p}: ${t.item.id} + `)(...Object.values(u),t.item.adv?.js)}catch(f){console.error(`Error at item ${t.item.name}: +`,t.item.adv?.js),console.error(f)}Kl(e,t,r,o)},aE=({fn:e,meta:t,passprop:n})=>e({passprop:n,meta:t}),Uf={"stroke-width":"strokeWidth","fill-rule":"fillRule","clip-rule":"clipRule","stroke-linejoin":"strokeLinejoin","stroke-linecap":"strokeLinecap","clip-path":"clipPath"},Bf=(e,t)=>{let n=e;for(let[r,i]of Object.entries(t))n=n.replaceAll(r,i);return n};var jy=P(G());var zy=(e,t,n,r,i,o)=>{if(t.item.component?.id){let s=t.item.script;if(o?(t.item.script_keyed||(t.item.script_keyed={}),t.item.script_keyed[o]||(t.item.script_keyed[o]={}),s=t.item.script_keyed[o]):(t.item.script||(t.item.script={}),s=t.item.script),!s)return;let c={...window.exports,db:e.site.db,api:e.site.api,...Gl(e),...r,params};s.props={};let u=new Set;if(t.item.component.props){let a={};for(let[p,f]of Object.entries(t.item.component.props))try{if(f.meta?.type==="content-element"){let m={_jsx:!0,fn:h=>{let y=f.content?.id;if(y){let v=n?e.layout?.meta[y]:e.meta[y];if(!v)return null;let S=t.instances;if(!h.meta.item.originalId||!S||!S[t.item.id])return null;let k=h.meta.item.originalId;if(v.mitem&&(f.jsxCalledBy&&(!f.jsxCalledBy.includes(k)||f.jsxCalledBy.length!==2)||!f.jsxCalledBy)){let R=t.mitem?.get("component")?.get("props")?.get(p);if(R){let O=R.get("jsxCalledBy");!O||typeof O!="object"?R.set("jsxCalledBy",[t.item.id,k]):Array.isArray(O)&&(!O.includes(k)||O.length!==2||O[0]!==t.item.id||O[1]!==k)&&R.set("jsxCalledBy",[t.item.id,k])}}return(0,jy.jsx)(en,{meta:v,passprop:h.passprop,is_layout:n,depth:i+1})}return null}};c[p]=m,r&&(r[p]=m);continue}if(f.value&&Zl(e,f.value),!f.valueBuilt&&f.value&&t.mitem){let m=t.mitem?.get("component")?.get("props")?.get(p);if(m){uE(m,f.value);return}}let d=f.valueBuilt||"",g=Bf(d,Uf)||"",w=new Function(...Object.keys(c),`// [${t.item.name}] ${p}: ${t.item.id} return ${g} `);s.props[p]={value:g,valueBuilt:g};let _=w(...Object.values(c));typeof _=="function"&&(s.props[p].fn=_,_=(...m)=>t.item.script?.props?.[p].fn(...m)),c[p]=_,a[p]=_,r&&(r[p]=_)}catch{u.add(p)}if(location.pathname.startsWith("/ed/")&&ri.item_id&&t.item.id===ri.item_id){ri.scope={};for(let[p,f]of Object.entries(r))ri.scope[p]=f;ri.scope.self_props=a}}}},ut={timeout:null,set:new WeakSet,map:{},src:{}},uE=(e,t)=>{if(!ut.set.has(e)){ut.set.add(e);let n=(0,My.createId)();ut.map[n]={mprop:e},ut.src[n]=t}clearTimeout(ut.timeout),ut.timeout=setTimeout(async()=>{let n=await _api.code_build(ut.src),r=null;for(let[i,o]of Object.entries(n)){let s=ut.map[i].mprop;if(!r&&s.doc){r=s.doc;break}}r&&(r.transact(()=>{for(let[i,o]of Object.entries(n))ut.map[i].mprop.set("valueBuilt",o)}),ut.set=new WeakSet,ut.map={},ut.src={})},300)},Kl=(e,t,n,r)=>{let i=r?t.item.script_keyed?.[r]:t.item.script;if(i&&i.props){let o={...n,api:e.site.api,db:e.site.db};for(let[s,l]of Object.entries(i.props))if(l.fn){let c=new Function(...Object.keys(o),`// [${t.item.name}] ${s}: ${t.item.id} return ${l.value||""} diff --git a/app/web/src/nova/vi/render/script/eval-script.tsx b/app/web/src/nova/vi/render/script/eval-script.tsx index 1eed1c17..ddf929b7 100644 --- a/app/web/src/nova/vi/render/script/eval-script.tsx +++ b/app/web/src/nova/vi/render/script/eval-script.tsx @@ -172,14 +172,14 @@ export const viEvalScript = ( try { ${src} } catch(e) { - console.error("Error at item ${meta.item.name}:", ___js); + console.error("Error at item ${meta.item.name}:\n", ___js); console.error(e); } ` ); fn(...Object.values(arg), meta.item.adv?.js); } catch (e) { - console.error(`Error at item ${meta.item.name}:`, meta.item.adv?.js); + console.error(`Error at item ${meta.item.name}:\n`, meta.item.adv?.js); console.error(e); }