@akashjs/compiler 0.1.17 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ import {createHash}from'crypto';function y(e){return {script:N(e,"script",(t,n,i
20
20
  `)+`
21
21
  `}t.add("createElement");let i=[];i.push(" const __fragment = document.createDocumentFragment();");for(let r=0;r<e.length;r++){let s=`__n${r}`;v(e[r],i,t,4,s,n),i.push(` __fragment.appendChild(${s});`);}return i.push(" return __fragment;"),i.join(`
22
22
  `)+`
23
- `}function v(e,t,n,i,r,s){let o=" ".repeat(i);switch(e.type){case "element":O(e,t,n,i,r,s);break;case "component":he(e,t,n,i,r,s);break;case "text":t.push(`${o}const ${r} = document.createTextNode(${JSON.stringify(e.content??"")});`);break;case "expression":n.add("effect"),t.push(`${o}const ${r} = document.createTextNode('');`),t.push(`${o}effect(() => { ${r}.textContent = String(${e.content}); }, { render: true });`);break}}function O(e,t,n,i,r,s){let o=" ".repeat(i),a=e.tag,p=e.directives?.find(l=>l.name==="if");if(p){n.add("renderConditional"),t.push(`${o}const ${r}_anchor = document.createComment('if');`),t.push(`${o}const ${r} = document.createDocumentFragment();`),t.push(`${o}${r}.appendChild(${r}_anchor);`),t.push(`${o}renderConditional(${r}, ${r}_anchor, () => ${p.value}, () => {`);let l=[],m={...e,directives:e.directives?.filter(g=>g.name!=="if")};O(m,l,n,i+2,"__el",s),l.push(`${o} return __el;`),t.push(...l),t.push(`${o}});`);return}let u=e.directives?.find(l=>l.name==="for");if(u){n.add("renderList");let l=e.directives?.find(g=>g.name==="key"),m=/^(?:\(([^)]+)\)|(\w+))\s+of\s+(.+)$/.exec(u.value);if(m){let g=m[1]??m[2],w=m[3],E=l?.value??`${g}`;t.push(`${o}const ${r}_anchor = document.createComment('for');`),t.push(`${o}const ${r} = document.createDocumentFragment();`),t.push(`${o}${r}.appendChild(${r}_anchor);`),t.push(`${o}renderList(${r}, ${r}_anchor, () => ${w}, (${g}) => ${E}, (${g}) => {`);let R=[],Q={...e,directives:e.directives?.filter(H=>H.name!=="for"&&H.name!=="key")};O(Q,R,n,i+2,"__el",s),R.push(`${o} return __el;`),t.push(...R),t.push(`${o}});`);}return}let c=e.directives?.filter(l=>l.name==="bind")??[];c.length>0&&e.directives&&(e.directives=e.directives.filter(l=>l.name!=="bind")),t.push(`${o}const ${r} = document.createElement('${a}');`),s&&t.push(`${o}${r}.setAttribute('${s}', '');`);let f=[],d=[];if(e.attrs)for(let l of e.attrs)l.name.startsWith("on")?f.push(l):d.push(l);let $=[],h=[];for(let l of d)l.name==="value"?$.push(l):h.push(l);for(let l of h)l.dynamic?(n.add("effect"),t.push(`${o}effect(() => {`),l.name==="class"||l.name==="className"?t.push(`${o} ${r}.className = ${l.value};`):t.push(`${o} ${r}.setAttribute('${l.name}', String(${l.value}));`),t.push(`${o}}, { render: true });`)):l.name==="class"||l.name==="className"?t.push(`${o}${r}.className = ${JSON.stringify(l.value)};`):t.push(`${o}${r}.setAttribute('${l.name}', ${JSON.stringify(l.value)});`);for(let l of c){let m=l.arg??"value",g=l.value;n.add("effect"),t.push(`${o}effect(() => { const __v = ${g}(); if (${r}.${m} !== __v) ${r}.${m} = __v; }, { render: true });`);let w=m==="value"||m==="checked"?"input":"change",E=m==="checked"?"checked":"value";t.push(`${o}${r}.addEventListener('${w}', (e) => { ${g}.set(e.target.${E}); });`);}if(e.children&&e.children.length>0)for(let l=0;l<e.children.length;l++){let m=`${r}_c${l}`;v(e.children[l],t,n,i,m,s),t.push(`${o}${r}.appendChild(${m});`);}for(let l of $)l.dynamic?(n.add("effect"),t.push(`${o}effect(() => {`),t.push(`${o} const __v = ${l.value};`),t.push(`${o} if (${r}.value !== String(__v)) ${r}.value = __v;`),t.push(`${o}}, { render: true });`)):t.push(`${o}${r}.value = ${JSON.stringify(l.value)};`);for(let l of f)l.dynamic?t.push(`${o}${r}.addEventListener('${l.name.slice(2).toLowerCase()}', ${l.value});`):t.push(`${o}${r}.setAttribute('${l.name}', ${JSON.stringify(l.value)});`);}function he(e,t,n,i,r,s){let o=" ".repeat(i),a=e.tag,p=a==="Show"||a==="For"||a==="Switch",u=[];if(e.attrs)for(let f of e.attrs)if(f.dynamic){let d=$e(f.value,n,i,s);d?u.push(`${f.name}: ${d}`):f.name.startsWith("on")||ue(f.value)?u.push(`${f.name}: ${f.value}`):p&&pe(f.value)?u.push(`${f.name}: () => ${f.value}`):u.push(`${f.name}: ${f.value}`);}else u.push(`${f.name}: ${JSON.stringify(f.value)}`);if(e.children&&e.children.length>0){let f=F(e.children,n,i+2,s);u.push(`children: ${f}`);}let c=u.length>0?`{ ${u.join(", ")} }`:"{}";t.push(`${o}const ${r} = ${a}(${c});`);}function F(e,t,n,i){if(e.length===1&&e[0].type==="expression"){let a=W(e[0].content??"",t,n,i);if(a)return a}let r=" ".repeat(n),s=[],o=e.filter(a=>!(a.type==="text"&&!(a.content??"").trim()));if(o.length===1)v(o[0],s,t,n,"__child",i),s.push(`${r}return __child;`);else {s.push(`${r}const __frag = document.createDocumentFragment();`);for(let a=0;a<o.length;a++){let p=`__child${a}`;v(o[a],s,t,n,p,i),s.push(`${r}__frag.appendChild(${p});`);}s.push(`${r}return __frag;`);}return `() => {
23
+ `}function v(e,t,n,i,r,s){let o=" ".repeat(i);switch(e.type){case "element":O(e,t,n,i,r,s);break;case "component":he(e,t,n,i,r,s);break;case "text":t.push(`${o}const ${r} = document.createTextNode(${JSON.stringify(e.content??"")});`);break;case "expression":n.add("effect"),t.push(`${o}const ${r} = document.createTextNode('');`),t.push(`${o}effect(() => { ${r}.textContent = String(${e.content}); }, { render: true });`);break}}function O(e,t,n,i,r,s){let o=" ".repeat(i),a=e.tag,p=e.directives?.find(l=>l.name==="if");if(p){n.add("renderConditional"),t.push(`${o}const ${r}_anchor = document.createComment('if');`),t.push(`${o}const ${r} = document.createDocumentFragment();`),t.push(`${o}${r}.appendChild(${r}_anchor);`),t.push(`${o}renderConditional(${r}, ${r}_anchor, () => ${p.value}, () => {`);let l=[],m={...e,directives:e.directives?.filter(g=>g.name!=="if")};O(m,l,n,i+2,"__el",s),l.push(`${o} return __el;`),t.push(...l),t.push(`${o}});`);return}let u=e.directives?.find(l=>l.name==="for");if(u){n.add("renderList");let l=e.directives?.find(g=>g.name==="key"),m=/^(?:\(([^)]+)\)|(\w+))\s+of\s+(.+)$/.exec(u.value);if(m){let g=m[1]??m[2],w=m[3],E=l?.value??`${g}`;t.push(`${o}const ${r}_anchor = document.createComment('for');`),t.push(`${o}const ${r} = document.createDocumentFragment();`),t.push(`${o}${r}.appendChild(${r}_anchor);`),t.push(`${o}renderList(${r}, ${r}_anchor, () => ${w}, (${g}) => ${E}, (${g}) => {`);let R=[],Q={...e,directives:e.directives?.filter(H=>H.name!=="for"&&H.name!=="key")};O(Q,R,n,i+2,"__el",s),R.push(`${o} return __el;`),t.push(...R),t.push(`${o}});`);}return}let c=e.directives?.filter(l=>l.name==="bind")??[];c.length>0&&e.directives&&(e.directives=e.directives.filter(l=>l.name!=="bind")),t.push(`${o}const ${r} = document.createElement('${a}');`),s&&t.push(`${o}${r}.setAttribute('${s}', '');`);let f=[],d=[];if(e.attrs)for(let l of e.attrs)l.name.startsWith("on")?f.push(l):d.push(l);let $=[],h=[];for(let l of d)l.name==="value"?$.push(l):h.push(l);for(let l of h)l.dynamic?(n.add("effect"),t.push(`${o}effect(() => {`),l.name==="class"||l.name==="className"?t.push(`${o} ${r}.className = ${l.value};`):t.push(`${o} ${r}.setAttribute('${l.name}', String(${l.value}));`),t.push(`${o}}, { render: true });`)):l.name==="class"||l.name==="className"?t.push(`${o}${r}.className = ${JSON.stringify(l.value)};`):t.push(`${o}${r}.setAttribute('${l.name}', ${JSON.stringify(l.value)});`);for(let l of c){let m=l.arg??"value",g=l.value;n.add("effect"),t.push(`${o}effect(() => { const __v = ${g}(); if (${r}.${m} !== __v) ${r}.${m} = __v; }, { render: true });`);let w=m==="value"||m==="checked"?"input":"change",E=m==="checked"?"checked":"value";t.push(`${o}${r}.addEventListener('${w}', (e) => { ${g}.set(e.target.${E}); });`);}if(e.children&&e.children.length>0)for(let l=0;l<e.children.length;l++){let m=`${r}_c${l}`;v(e.children[l],t,n,i,m,s),t.push(`${o}${r}.appendChild(${m});`);}for(let l of $)l.dynamic?(t.push(`${o}${r}.value = ${l.value};`),n.add("effect"),t.push(`${o}effect(() => {`),t.push(`${o} const __v = ${l.value};`),t.push(`${o} if (${r}.value !== String(__v)) ${r}.value = __v;`),t.push(`${o}}, { render: true });`)):t.push(`${o}${r}.value = ${JSON.stringify(l.value)};`);for(let l of f)l.dynamic?t.push(`${o}${r}.addEventListener('${l.name.slice(2).toLowerCase()}', ${l.value});`):t.push(`${o}${r}.setAttribute('${l.name}', ${JSON.stringify(l.value)});`);}function he(e,t,n,i,r,s){let o=" ".repeat(i),a=e.tag,p=a==="Show"||a==="For"||a==="Switch",u=[];if(e.attrs)for(let f of e.attrs)if(f.dynamic){let d=$e(f.value,n,i,s);d?u.push(`${f.name}: ${d}`):f.name.startsWith("on")||ue(f.value)?u.push(`${f.name}: ${f.value}`):p&&pe(f.value)?u.push(`${f.name}: () => ${f.value}`):u.push(`${f.name}: ${f.value}`);}else u.push(`${f.name}: ${JSON.stringify(f.value)}`);if(e.children&&e.children.length>0){let f=F(e.children,n,i+2,s);u.push(`children: ${f}`);}let c=u.length>0?`{ ${u.join(", ")} }`:"{}";t.push(`${o}const ${r} = ${a}(${c});`);}function F(e,t,n,i){if(e.length===1&&e[0].type==="expression"){let a=W(e[0].content??"",t,n,i);if(a)return a}let r=" ".repeat(n),s=[],o=e.filter(a=>!(a.type==="text"&&!(a.content??"").trim()));if(o.length===1)v(o[0],s,t,n,"__child",i),s.push(`${r}return __child;`);else {s.push(`${r}const __frag = document.createDocumentFragment();`);for(let a=0;a<o.length;a++){let p=`__child${a}`;v(o[a],s,t,n,p,i),s.push(`${r}__frag.appendChild(${p});`);}s.push(`${r}return __frag;`);}return `() => {
24
24
  ${s.join(`
25
25
  `)}
26
26
  ${" ".repeat(n-2)}}`}function W(e,t,n,i){let r=e.trim(),s=/^(\(?[^)]*\)?)\s*=>\s*(<[a-zA-Z].*)$/s.exec(r);if(!s)return null;let o=s[1],a=s[2],p=b(a);if(p.length===0)return null;let u=" ".repeat(n),c=[];if(p.length===1)v(p[0],c,t,n,"__child",i),c.push(`${u}return __child;`);else {c.push(`${u}const __frag = document.createDocumentFragment();`);for(let f=0;f<p.length;f++){let d=`__child${f}`;v(p[f],c,t,n,d,i),c.push(`${u}__frag.appendChild(${d});`);}c.push(`${u}return __frag;`);}return `${o} => {