diff --git a/app.js b/app.js index cbc718c..ea3e7e5 100644 --- a/app.js +++ b/app.js @@ -1,4 +1,4 @@ -const {DOM, Tag, H} = Gale({ +const {DOM, Tag, Div} = Gale({ Button: { padding: "20px", background: "orange", @@ -30,15 +30,15 @@ const {DOM, Tag, H} = Gale({ Orange:{ background:"orange" } -}, "abilities"); +}); const UI =()=> { - return H.Window( - H.Ability({class:Tag("Ability", "Orange")}), - H.Ability(), - H.Ability(), - H.Ability.Orange(), + return Div.Window( + Div.Ability({class:Tag("Ability", "Orange")}), + Div.Ability(), + Div.Ability(), + Div.Ability.Orange(), ) } diff --git a/bundle.js b/bundle.js new file mode 100644 index 0000000..52ff28e --- /dev/null +++ b/bundle.js @@ -0,0 +1,3 @@ +var ue=Object.defineProperty;var _e=(e,t)=>{for(var r in t)ue(e,r,{get:t[r],enumerable:!0})};var y=Object.getPrototypeOf,b,k,w,T,z={isConnected:1},ye=1e3,O,pe={},Se=y(z),Q=y(y),p,Z=(e,t,r,l)=>(e??(setTimeout(r,l),new Set)).add(t),q=(e,t,r)=>{let l=w;w=t;try{return e(r)}catch(n){return console.error(n),r}finally{w=l}},P=e=>e.filter(t=>t._dom?.isConnected),U=e=>O=Z(O,e,()=>{for(let t of O)t._bindings=P(t._bindings),t._listeners=P(t._listeners);O=p},ye),I={get val(){return w?._getters?.add(this),this.rawVal},get oldVal(){return w?._getters?.add(this),this._oldVal},set val(e){w?._setters?.add(this),e!==this.rawVal&&(this.rawVal=e,this._bindings.length+this._listeners.length?(k?.add(this),b=Z(b,this,ve)):this._oldVal=e)}},Y=e=>({__proto__:I,rawVal:e,_oldVal:e,_bindings:[],_listeners:[]}),V=(e,t)=>{let r={_getters:new Set,_setters:new Set},l={f:e},n=T;T=[];let i=q(e,r,t);i=(i??document).nodeType?i:new Text(i);for(let o of r._getters)r._setters.has(o)||(U(o),o._bindings.push(l));for(let o of T)o._dom=i;return T=n,l._dom=i},G=(e,t=Y(),r)=>{let l={_getters:new Set,_setters:new Set},n={f:e,s:t};n._dom=r??T?.push(n)??z,t.val=q(e,l,t.rawVal);for(let i of l._getters)l._setters.has(i)||(U(i),i._listeners.push(n));return t},j=(e,...t)=>{for(let r of t.flat(1/0)){let l=y(r??0),n=l===I?V(()=>r.val):l===Q?V(r):r;n!=p&&e.append(n)}return e},ee=(e,t,...r)=>{let[{is:l,...n},...i]=y(r[0]??0)===Se?r:[{},...r],o=e?document.createElementNS(e,t,{is:l}):document.createElement(t,{is:l});for(let[d,g]of Object.entries(n)){let u=_=>_?Object.getOwnPropertyDescriptor(_,d)??u(y(_)):p,C=t+","+d,c=pe[C]??=u(y(o))?.set??0,a=d.startsWith("on")?(_,h)=>{let f=d.slice(2);o.removeEventListener(f,h),o.addEventListener(f,_)}:c?c.bind(o):o.setAttribute.bind(o,d),s=y(g??0);d.startsWith("on")||s===Q&&(g=G(g),s=I),s===I?V(()=>(a(g.val,g._oldVal),o)):a(g)}return j(o,i)},J=e=>({get:(t,r)=>ee.bind(p,e,r)}),te=(e,t)=>t?t!==e&&e.replaceWith(t):e.remove(),ve=()=>{let e=0,t=[...b].filter(l=>l.rawVal!==l._oldVal);do{k=new Set;for(let l of new Set(t.flatMap(n=>n._listeners=P(n._listeners))))G(l.f,l.s,l._dom),l._dom=p}while(++e<100&&(t=[...k]).length);let r=[...b].filter(l=>l.rawVal!==l._oldVal);b=p;for(let l of new Set(r.flatMap(n=>n._bindings=P(n._bindings))))te(l._dom,V(l.f,l._dom)),l._dom=p;for(let l of r)l._oldVal=l.rawVal},M={tags:new Proxy(e=>new Proxy(ee,J(e)),J()),hydrate:(e,t)=>te(e,V(t,e)),add:j,state:Y,derive:G};var W={};_e(W,{calc:()=>Ce,compact:()=>B,list:()=>Re,noreactive:()=>Pe,raw:()=>de,reactive:()=>R,replace:()=>ge,stateFields:()=>Ie});var{fromEntries:le,entries:D,keys:E,hasOwn:F,getPrototypeOf:K,create:we,assign:me}=Object,{get:ne,set:re,deleteProperty:Te,ownKeys:be}=Reflect,{state:$,derive:Ve,add:Ae}=M,x,De=1e3,X,L,v=Symbol(),oe=Symbol(),H=Symbol(),S=Symbol(),A=Symbol(),ie=Symbol(),Ce=e=>(e[oe]=1,e),m=e=>e instanceof Object&&!(e instanceof Function)&&!e[ie],ae=e=>{if(e?.[oe]){let t=$();return Ve(()=>{let r=e();m(t.rawVal)&&m(r)?ge(t.rawVal,r):t.val=R(r)}),t}else return $(R(e))},Oe=e=>{let t=Array.isArray(e)?[]:{__proto__:K(e)};for(let[r,l]of D(e))t[r]=ae(l);return t[H]=[],t[S]=$(1),t},se={get:(e,t,r)=>t===v?e:F(e,t)?Array.isArray(e)&&t==="length"?(e[S].val,e.length):e[t].val:ne(e,t,r),set:(e,t,r,l)=>F(e,t)?Array.isArray(e)&&t==="length"?(r!==e.length&&++e[S].val,e.length=r,1):(e[t].val=R(r),1):t in e?re(e,t,r,l):re(e,t,ae(r))&&(++e[S].val,N(e).forEach(ce.bind(X,l,t,e[t],L)),1),deleteProperty:(e,t)=>(Te(e,t)&&$e(e,t),++e[S].val),ownKeys:e=>(e[S].val,be(e))},R=e=>!m(e)||e[v]?e:new Proxy(Oe(e),se),Pe=e=>(e[ie]=1,e),Ie=e=>e[v],Me=K($()),xe=e=>new Proxy(e,{get:(t,r,l)=>K(t[r]??0)===Me?{val:de(t[r].rawVal)}:ne(t,r,l)}),de=e=>e?.[v]?new Proxy(xe(e[v]),se):e,N=e=>e[H]=e[H].filter(t=>t._containerDom.isConnected),ce=(e,t,r,l,{_containerDom:n,f:i})=>{let o=Array.isArray(e),d=o?Number(t):t;Ae(n,()=>n[A][t]=i(r,()=>delete e[t],d)),o&&!l&&d!==e.length-1&&n.insertBefore(n.lastChild,n[A][E(e).find(g=>Number(g)>d)])},$e=(e,t)=>{for(let r of N(e)){let l=r._containerDom[A];l[t]?.remove(),delete l[t]}},He=e=>(x??(x=(setTimeout(()=>(x.forEach(N),x=X),De),new Set))).add(e),Re=(e,t,r)=>{let l={_containerDom:e instanceof Function?e():e,f:r},n=t[v];l._containerDom[A]={},n[H].push(l),He(n);for(let[i,o]of D(n))ce(t,i,o,1,l);return l._containerDom},fe=(e,t)=>{for(let[n,i]of D(t)){let o=e[n];m(o)&&m(i)?fe(o,i):e[n]=i}for(let n in e)F(t,n)||delete e[n];let r=E(t),l=Array.isArray(e);if(l||E(e).some((n,i)=>n!==r[i])){let n=e[v];if(l)e.length=t.length;else{++n[S].val;let i={...n};for(let o of r)delete n[o];for(let o of r)n[o]=i[o]}for(let{_containerDom:i}of N(n)){let{firstChild:o,[A]:d}=i;for(let g of r)o===d[g]?o=o.nextSibling:i.insertBefore(d[g],o)}}return e},ge=(e,t)=>{L=1;try{return fe(e,t instanceof Function?Array.isArray(e)?t(e.filter(r=>1)):le(t(D(e))):t)}finally{L=X}},B=e=>Array.isArray(e)?e.filter(t=>1).map(B):m(e)?me(we(K(e)),le(D(e).map(([t,r])=>[t,B(r)]))):e;var he=(e,t="")=>{let r="@",l=":",n=".",i="^",o=(c,a,s)=>{let _=Object.keys(a).map(h=>{let f=a[h];switch(h[0]){case r:return o(`@media(max-width:${h.substring(r.length)})`,f,s);case l:return o(`&${h}`,f,s);case n:return o(`${h}${s}`,f,s);case i:return o(`&:hover .${h.substring(i.length)}${s}`,f,s)}return`${h.replace(/([a-z])([A-Z])/g,"$1-$2")}: ${f};`});return`${c}{${_.join(` +`)}}`},d=(c,a)=>{let s=a.lastIndexOf(c)+c.length;return s?a.substring(s):a},g=c=>{let a=van.tags[c],s=[],_=new Proxy((...h)=>{let f=a(...h);return f.className=s.join(u+" ")+u+" "+f.className,s=[],f},{get(h,f){return s.push(f.substring(f.lastIndexOf(".")+1)),_}});return _},u=t?"_"+t:"",C=Object.keys(e).map(c=>o("."+c+u,e[c],u)).join(` +`);return globalThis.document?.head.insertAdjacentHTML("beforeend",``),{Tag(...c){return c.map(a=>d(i,d(n,a))).join(u+" ")+u},CSS:C,DOM:new Proxy({},{get(c,a){return g(a)}}),Div:new Proxy({},{get(c,a){return g("div")[a]}})}};globalThis.van=M;globalThis.vanX=W;globalThis.Gale=he; diff --git a/deno.json b/deno.json index 4512197..7cc3241 100644 --- a/deno.json +++ b/deno.json @@ -9,7 +9,8 @@ { "work": "deno run -Ar ./scripts/dev_server.ts", "scan": "deno run -Ar ./scripts/refresh_types.ts", - "html": "deno run -Ar ./scripts/scaffold.ts --html" + "html": "deno run -Ar ./scripts/scaffold.ts --html", + "make": "deno bundle --no-lock --platform=browser --inline-imports=true --output=bundle.js --minify src/bundle_entry.ts" }, "imports": { diff --git a/deno.lock b/deno.lock index 18570d3..15e2ab1 100644 --- a/deno.lock +++ b/deno.lock @@ -1,13 +1,27 @@ { - "version": "4", + "version": "5", "specifiers": { - "jsr:@std/media-types@*": "1.1.0" + "jsr:@std/media-types@*": "1.1.0", + "npm:vanjs-core@*": "1.5.5", + "npm:vanjs-core@^1.5.5": "1.5.5", + "npm:vanjs-ext@~0.6.3": "0.6.3" }, "jsr": { "@std/media-types@1.1.0": { "integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4" } }, + "npm": { + "vanjs-core@1.5.5": { + "integrity": "sha512-BC9MjbXYIRqnwncXfacT6upJpVmIKyrV2MjZi8NuCK+yc9RP0hfdghTpmEuYswXOfkLarDPPcYK4X6q68T9e+g==" + }, + "vanjs-ext@0.6.3": { + "integrity": "sha512-Jmaeqx9nCjelwDVSQEaRtt7R4Y/Kj/zJBG3bZSiIPj8Wtr8nEFRsJX9K5qcGl1o3cGEEFBE9suyoSqs/6tiOBg==", + "dependencies": [ + "vanjs-core" + ] + } + }, "redirects": { "https://deno.land/std/path/mod.ts": "https://deno.land/std@0.224.0/path/mod.ts" }, diff --git a/dist/core.d.ts b/dist/core.d.ts index f29e88b..ddadce9 100644 --- a/dist/core.d.ts +++ b/dist/core.d.ts @@ -62,26 +62,42 @@ declare global readonly noreactive: (obj: T) => T readonly stateFields: (obj: T) => VanX.StateOf readonly raw: (obj: T) => T - readonly list: (container: (() => ElementType) | ElementType, items: T,itemFunc: (v: Van.State>, deleter: () => void, k: VanX.KeyType) => Node) => ElementType + readonly list: ( + container: (() => ElementType) | ElementType, + items: T,itemFunc: (v: Van.State>, deleter: () => void, k: VanX.KeyType) => Node + ) => ElementType readonly replace: (obj: T, replacement: VanX.ReplacementFunc | T) => T readonly compact: (obj: T) => T + // my addition + readonly Store: (obj:T, key:string)=>T }; namespace Gale { type KeyQuery = "@"; - type KeyPseudo = ":"; + type KeyState = ":"; type KeyChild = "."; type KeyGroup = "^"; - type UserStyles = Partial & {[key: `${KeyQuery|KeyPseudo|KeyChild|KeyGroup}${string}`]: UserStyles } + type UserStyles = Partial & {[key: `${KeyQuery|KeyState|KeyChild|KeyGroup}${string}`]: UserStyles } type UserSheet = Record type CollectKeys = {[Key in keyof Obj]: Obj[Key] extends object ? Key | CollectKeys : Key }[keyof Obj] type FilterKeys = Keys extends `${KeyChild|KeyGroup}${infer Rest}` ? Keys : never type CrossMultiply = A extends string ? B extends string ? `${A}${B}` : never : never type CrossMultiplyRecord = keyof Rec | { [K in keyof Rec]: K extends string ? CrossMultiply>> : never }[keyof Rec] - type Tier = (selector:string, obj:UserStyles)=>string; - type CreateSheet = (sheet:UserSheet&T)=> ((...args:CrossMultiplyRecord[])=>string)&{css:string} + type Tier = (selector:string, obj:UserStyles, suffix:string)=>string; + type CreateSheet = (sheet:UserSheet&T, hash?:string)=>{ + Tag:(...args:CrossMultiplyRecord[])=>string, + CSS:string, + DOM:Elemental>, + Div:Circular, Van.TagFunc> + } + + + type Elemental = {[K in keyof HTMLElementTagNameMap]: Van.TagFunc&Circular>} + + type Circular = { + [K in Keys]: Circular&Func + }; + } - const Gale:Gale.CreateSheet - } \ No newline at end of file diff --git a/dist/core.js b/dist/core.js index ed5ed39..7753984 100644 --- a/dist/core.js +++ b/dist/core.js @@ -1,3 +1,4 @@ + //van {let e,t,r,o,n,l,s,i,f,h,w,a,d,u,_,c,S,g,y,b,m,v,j,x,O;s=Object.getPrototypeOf,f={},h=s(i={isConnected:1}),w=s(s),a=(e,t,r,o)=>(e??(setTimeout(r,o),new Set)).add(t),d=(e,t,o)=>{let n=r;r=t;try{return e(o)}catch(e){return console.error(e),o}finally{r=n}},u=e=>e.filter(e=>e.t?.isConnected),_=e=>n=a(n,e,()=>{for(let e of n)e.o=u(e.o),e.l=u(e.l);n=l},1e3),c={get val(){return r?.i?.add(this),this.rawVal},get oldVal(){return r?.i?.add(this),this.h},set val(o){r?.u?.add(this),o!==this.rawVal&&(this.rawVal=o,this.o.length+this.l.length?(t?.add(this),e=a(e,this,x)):this.h=o)}},S=e=>({__proto__:c,rawVal:e,h:e,o:[],l:[]}),g=(e,t)=>{let r={i:new Set,u:new Set},n={f:e},l=o;o=[];let s=d(e,r,t);s=(s??document).nodeType?s:new Text(s);for(let e of r.i)r.u.has(e)||(_(e),e.o.push(n));for(let e of o)e.t=s;return o=l,n.t=s},y=(e,t=S(),r)=>{let n={i:new Set,u:new Set},l={f:e,s:t};l.t=r??o?.push(l)??i,t.val=d(e,n,t.rawVal);for(let e of n.i)n.u.has(e)||(_(e),e.l.push(l));return t},b=(e,...t)=>{for(let r of t.flat(1/0)){let t=s(r??0),o=t===c?g(()=>r.val):t===w?g(r):r;o!=l&&e.append(o)}return e},m=(e,t,...r)=>{let[{is:o,...n},...i]=s(r[0]??0)===h?r:[{},...r],a=e?document.createElementNS(e,t,{is:o}):document.createElement(t,{is:o});for(let[e,r]of Object.entries(n)){let o=t=>t?Object.getOwnPropertyDescriptor(t,e)??o(s(t)):l,n=t+","+e,i=f[n]??=o(s(a))?.set??0,h=e.startsWith("on")?(t,r)=>{let o=e.slice(2);a.removeEventListener(o,r),a.addEventListener(o,t)}:i?i.bind(a):a.setAttribute.bind(a,e),d=s(r??0);e.startsWith("on")||d===w&&(r=y(r),d=c),d===c?g(()=>(h(r.val,r.h),a)):h(r)}return b(a,i)},v=e=>({get:(t,r)=>m.bind(l,e,r)}),j=(e,t)=>t?t!==e&&e.replaceWith(t):e.remove(),x=()=>{let r=0,o=[...e].filter(e=>e.rawVal!==e.h);do{t=new Set;for(let e of new Set(o.flatMap(e=>e.l=u(e.l))))y(e.f,e.s,e.t),e.t=l}while(++r<100&&(o=[...t]).length);let n=[...e].filter(e=>e.rawVal!==e.h);e=l;for(let e of new Set(n.flatMap(e=>e.o=u(e.o))))j(e.t,g(e.f,e.t)),e.t=l;for(let e of n)e.h=e.rawVal},O={tags:new Proxy(e=>new Proxy(m,v(e)),v()),hydrate:(e,t)=>j(e,g(t,e)),add:b,state:S,derive:y},window.van=O;} @@ -5,10 +6,16 @@ {let e,t,r,{fromEntries:o,entries:l,keys:n,hasOwn:f,getPrototypeOf:a}=Object,{get:i,set:y,deleteProperty:c,ownKeys:s}=Reflect,{state:m,derive:d,add:u}=van,b=1e3,w=Symbol(),A=Symbol(),S=Symbol(),_=Symbol(),g=Symbol(),p=Symbol(),P=e=>(e[A]=1,e),v=e=>e instanceof Object&&!(e instanceof Function)&&!e[p],h=e=>{if(e?.[A]){let t=m();return d(()=>{let r=e();v(t.rawVal)&&v(r)?B(t.rawVal,r):t.val=x(r)}),t}return m(x(e))},F=e=>{let t=Array.isArray(e)?[]:{__proto__:a(e)};for(let[r,o]of l(e))t[r]=h(o);return t[S]=[],t[_]=m(1),t},O={get:(e,t,r)=>t===w?e:f(e,t)?Array.isArray(e)&&"length"===t?(e[_].val,e.length):e[t].val:i(e,t,r),set:(e,o,l,n)=>f(e,o)?Array.isArray(e)&&"length"===o?(l!==e.length&&++e[_].val,e.length=l,1):(e[o].val=x(l),1):o in e?y(e,o,l,n):y(e,o,h(l))&&(++e[_].val,C(e).forEach(E.bind(t,n,o,e[o],r)),1),deleteProperty:(e,t)=>(c(e,t)&&R(e,t),++e[_].val),ownKeys:e=>(e[_].val,s(e))},x=e=>!v(e)||e[w]?e:new Proxy(F(e),O),D=e=>(e[p]=1,e),j=e=>e[w],K=a(m()),N=e=>new Proxy(e,{get:(e,t,r)=>a(e[t]??0)===K?{val:k(e[t].rawVal)}:i(e,t,r)}),k=e=>e?.[w]?new Proxy(N(e[w]),O):e,C=e=>e[S]=e[S].filter(e=>e.t.isConnected),E=(e,t,r,o,{t:l,f:f})=>{let a=Array.isArray(e),i=a?Number(t):t;u(l,()=>l[g][t]=f(r,()=>delete e[t],i)),a&&!o&&i!==e.length-1&&l.insertBefore(l.lastChild,l[g][n(e).find(e=>Number(e)>i)])},R=(e,t)=>{for(let r of C(e)){let e=r.t[g];e[t]?.remove(),delete e[t]}},T=r=>(e??(setTimeout(()=>(e.forEach(C),e=t),b),e=new Set)).add(r),q=(e,t,r)=>{let o={t:e instanceof Function?e():e,f:r},n=t[w];o.t[g]={},n[S].push(o),T(n);for(let[e,r]of l(n))E(t,e,r,1,o);return o.t},z=(e,t)=>{for(let[r,o]of l(t)){let t=e[r];v(t)&&v(o)?z(t,o):e[r]=o}for(let r in e)f(t,r)||delete e[r];let r=n(t),o=Array.isArray(e);if(o||n(e).some((e,t)=>e!==r[t])){let l=e[w];if(o)e.length=t.length;else{++l[_].val;let e={...l};for(let e of r)delete l[e];for(let t of r)l[t]=e[t]}for(let{t:e}of C(l)){let{firstChild:t,[g]:o}=e;for(let l of r)t===o[l]?t=t.nextSibling:e.insertBefore(o[l],t)}}return e},B=(e,n)=>{r=1;try{return z(e,n instanceof Function?Array.isArray(e)?n(e.filter(e=>1)):o(n(l(e))):n)}finally{r=t}},G=e=>Array.isArray(e)?e.filter(e=>1).map(G):v(e)?o(l(e).map(([e,t])=>[e,G(t)])):e;window.vanX={calc:P,reactive:x,noreactive:D,stateFields:j,raw:k,list:q,replace:B,compact:G}} //Store -vanX.Store=(e,t)=>{const a=localStorage.getItem(t),r=vanX.reactive(a?JSON.parse(a):e);return van.derive((()=>localStorage.setItem(t,JSON.stringify(vanX.compact(r))))),r}; +vanX.Store=(e,t)=> +{ + const a = localStorage.getItem(t); + const r = vanX.reactive( a ? JSON.parse(a) : e ); + + return van.derive( (()=>localStorage.setItem(t,JSON.stringify(vanX.compact(r)))) ),r +}; //gale globalThis.Gale=(e,t="")=>{const n=(e,t,s)=>`${e}{${Object.keys(t).map((e=>{const r=t[e];switch(e[0]){case"@":return n(`@media(max-width:${e.substring(1)})`,r,s);case":":return n(`&${e}`,r,s);case".":return n(`${e}${s}`,r,s);case"^":return n(`&:hover .${e.substring(1)}${s}`,r,s)}return`${e.replace(/([a-z])([A-Z])/g,"$1-$2")}: ${r};`})).join("\n")}}`,s=(e,t)=>{const n=t.lastIndexOf(e)+e.length;return n?t.substring(n):t},r=e=>{const t=van.tags[e];let n=[];const s=new Proxy(((...e)=>{const s=t(...e);return s.className=n.join(a+" ")+a+" "+s.className,n=[],s}),{get:(e,t)=>(n.push(t.substring(t.lastIndexOf(".")+1)),s)});return s},a=t?"_"+t:"",c=Object.keys(e).map((t=>n("."+t+a,e[t],a))).join("\n");return globalThis.document?.head.insertAdjacentHTML("beforeend",``),{Tag:(...e)=>e.map((e=>s("^",s(".",e)))).join(a+" ")+a,CSS:c,DOM:new Proxy({},{get:(e,t)=>r(t)}),H:new Proxy({},{get:(e,t)=>r("div")[t]})}}; //boot -((t="/")=>{fetch(t+"deno.json").then((t=>t.json())).then((e=>{const n=(t,e)=>{let n=document.createElement("script");n.type=t,n.textContent=e,document.head.appendChild(n)},o=e.imports;for(let e in o){const n=o[e];n.startsWith("./")&&(o[e]=t+n.substring(2))}n("importmap",JSON.stringify({imports:o})),n("module",'import "entry"; ')}))})(); \ No newline at end of file +((t="/")=>{fetch(t+"deno.json").then((t=>t.json())).then((e=>{const n=(t,e)=>{let n=document.createElement("script");n.type=t,n.textContent=e,document.head.appendChild(n)},o=e.imports;for(let e in o){const n=o[e];n.startsWith("./")&&(o[e]=t+n.substring(2))}n("importmap",JSON.stringify({imports:o})),n("module",'import "entry"; ')}))})(); diff --git a/index.html b/index.html index 15b630e..fd56352 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,12 @@ - - + + \ No newline at end of file diff --git a/scripts/bundle_subprocess.ts b/scripts/bundle_subprocess.ts new file mode 100644 index 0000000..7352747 --- /dev/null +++ b/scripts/bundle_subprocess.ts @@ -0,0 +1,8 @@ +const command = new Deno.Command("deno bundle", {}); +const decode = new TextDecoder("utf-8"); + +const output = await command.output(); + + + +console.assert() \ No newline at end of file diff --git a/src/bundle_entry.ts b/src/bundle_entry.ts new file mode 100644 index 0000000..06afbdf --- /dev/null +++ b/src/bundle_entry.ts @@ -0,0 +1,10 @@ +import Van from "npm:vanjs-core@^1.5.5"; +globalThis.van = Van; + +import * as VanX from "npm:vanjs-ext@^0.6.3"; +globalThis.vanX = VanX; + +import Gale from "./gale.js"; +globalThis.Gale = Gale; + +import "./hmr.js"; \ No newline at end of file diff --git a/src/gale.js b/src/gale.js index 3bf81a1..6b5471a 100644 --- a/src/gale.js +++ b/src/gale.js @@ -1,5 +1,5 @@ /** @type {Gale.CreateSheet} */ -globalThis.Gale = (sheet, hash="")=> +export default (sheet, hash="")=> { const KeyQuery = "@"; const KeyState = ":"; @@ -76,7 +76,7 @@ globalThis.Gale = (sheet, hash="")=> } } ), - H: new Proxy( + Div: new Proxy( {}, { get(_, prop) diff --git a/src/hmr.js b/src/hmr.js index 38b93c4..6f7489a 100644 --- a/src/hmr.js +++ b/src/hmr.js @@ -1,6 +1,4 @@ -//@ts-check -// hmr -const HMR = globalThis.HMR = { +export default { Time: 0, /** @type {Record} */ Temp:{},