UNPKG

tilia

Version:

🍃 State management library, domain-driven.

3 lines (2 loc) 7.75 kB
var Y=Object.defineProperty;var ye=Object.getOwnPropertyDescriptor;var Pe=Object.getOwnPropertyNames;var je=Object.prototype.hasOwnProperty;var Ke=(e,n)=>{for(var r in n)Y(e,r,{get:n[r],enumerable:!0})},Te=(e,n,r,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of Pe(n))!je.call(e,i)&&i!==r&&Y(e,i,{get:()=>n[i],enumerable:!(t=ye(n,i))||t.enumerable});return e};var Oe=e=>Te(Y({},"__esModule",{value:!0}),e);var We={};Ke(We,{_clear:()=>q,_ctx:()=>_,_done:()=>ve,_meta:()=>Ce,_observe:()=>Se,_ready:()=>D,batch:()=>Re,carve:()=>ge,computed:()=>re,derived:()=>_e,make:()=>te,observe:()=>he,readonly:()=>de,signal:()=>we,source:()=>oe,store:()=>ce,tilia:()=>be,watch:()=>pe});module.exports=Oe(We);var fe=function(e){throw new Error(e)},N=function(e){return Symbol.for("tilia:"+e)},I=N("indexKey"),J=N("metaKey"),A=N("dynamicKey"),ae=N("ctx"),G=function(e){if(typeof e=="object"&&e!==null){let n=Object.getPrototypeOf(e);return n===Object.prototype||n===Array.prototype||n===null}return!1},$=function(e){return typeof e=="object"&&e!==null&&e[A]?e:void 0};function ze(e,n){var r=Object.getOwnPropertyDescriptor(e,n);return r==null?!1:r.writable===!1}function H(e,n){var r=e.get(n);if(r!=null)return r;var t={state:"Pristine",key:n,observed:e,observers:new Set};return e.set(n,t),t}function Q(e){if(e.expired.size>0)for(;e.expired.size>0;){var n=e.expired;e.expired=new Set,n.forEach(function(t){t.notify()})}var r=e.gc;if(r.active.size>=r.threshold){r.quarantine.forEach(function(t){if(t.state==="Pristine"&&t.observers.size===0){t.state="Cleared",t.observed.delete(t.key);return}}),r.quarantine=r.active,r.active=new Set;return}}function q(e){var n=e.root;e.observing.forEach(function(t){if(t.state==="Pristine"&&t.observers.delete(e)&&t.observers.size===0){n.gc.active.add(t);return}});var r=n.observer;if(!(r==null||r!==e))return n.observer=void 0,n.lock?void 0:Q(n)}function D(e,n){e.observing.find(function(i,f){var u=i.state;switch(u){case"Pristine":return i.observers.add(e),!1;case"Changed":case"Cleared":break}if(n)return q(e),e.notify(),!0;var s=H(i.observed,i.key);return s.observers.add(e),e.observing[f]=s,!1});var r=e.root,t=r.observer;if(!(t==null||t!==e))return r.observer=void 0,r.lock?void 0:Q(r)}function ee(e,n,r){var t=n.get(r);if(t!=null){n.delete(r),t.state="Changed";var i=e.expired;t.observers.forEach(function(u){q(u),i.add(u)});var f=e.observer;if(f==null&&!e.lock)return Q(e)}}function L(e,n,r,t,i,f,u,s,p){for(;;){var R=p,v=s,d=f,h=Reflect.has(u,v),o=Reflect.get(u,v),c=G(R),a;if(c){var l=Reflect.get(R,J);a=l==null?o===R:l.target===o}else a=o===R;if(a)return!0;if(!Reflect.set(u,v,R))return!1;var g=i&&v==="length"?I:v;if(c&&r.delete(g),!d){var w=t.get(g);w==null||(t.delete(g),w())}var T=$(R);if(T!=null){var E=n.get(g);if(E==null||!(E.state==="Pristine"&&E.observers.size>0))return!0;Reflect.set(u,g,o);var j=function(S){return function(b){return le(e,n,r,t,i,u,S,b)}}(g),k=function(S){return function(b){L(e,n,r,t,i,!0,u,S,b)}}(g),V=function(S){for(;;){var O=S,b=$(O);if(b==null)return O;var C;switch(b.TAG){case"Computed":C=j(b._0);break;case"Source":var y=b._0,P=y.value,M={contents:P},B=function(z){return function(K){z.contents=K,k(K)}}(M),W=y.source;C=j((B(P),function(z,F){return function(){return F(B),z.contents}}(M,W)));break;case"Store":var m=b._0;C=j(function(z){return function(){return z(k)}}(m));break;case"Compiled":var X=b._0.rebuild;C=X();break}if(!G(C))return C;S=C}},U=V(R);p=U,s=g,f=!0;continue}return ee(e,n,g),h||ee(e,n,I),!0}}function le(e,n,r,t,i,f,u,s){var p={v:void 0},R={o:void 0},v={rebuild:void 0},d={TAG:"Compiled",_0:v};Reflect.set(d,A,!0);var h=function(){var a=Reflect.get(f,u);a!==d&&(p.v=a);var l=n.get(u);if(l!=null){l.observers.size>0?L(e,n,r,t,i,!0,f,u,o()):(l.state="Changed",n.delete(u),r.delete(u),Reflect.set(f,u,d));return}r.delete(u),Reflect.set(f,u,d)},o=function(){var a=Reflect.get(f,u);a===d?Reflect.set(f,u,p.v):p.v=a;var l=[],g={root:e,notify:h,observing:l};R.o=g;var w=e.observer;e.observer=g;var T=s();return e.observer=w,l.length===0?(q(g),t.delete(u)):D(g,!1),T};v.rebuild=o;var c=function(){var a=R.o;a!=null&&(q(a),a.observing.length=0)};return t.set(u,c),o()}function ne(e,n){for(;;){var r=n,t=new Map,i=new Map,f=new Map,u=Reflect.get(r,J);if(u!=null){if(u.root===e)return u;n=u.target;continue}var s={root:e,target:r,observed:i,proxied:t,computes:f},p=Array.isArray(r),R=new Proxy(r,{set:function(v,d,h,o){return function(c,a,l){return L(e,d,v,h,o,!1,c,a,l)}}(t,i,f,p),deleteProperty:function(v,d,h){return function(o,c){var a=Reflect.deleteProperty(o,c);v.delete(c);var l=h.get(c);return l==null||(h.delete(c),l()),ee(e,d,c),a}}(t,i,f),get:function(v,d,h,o){return function(c,a){if(a===J)return s;if(a!==A){var l=Reflect.get(c,a),g=Object.hasOwn(c,a);if(!(l===void 0||g))return l;var w=e.observer;if(w!=null)if(o&&a==="length"){var T=H(d,I);w.observing.push(T)}else{var E=H(d,a);w.observing.push(E)}if(!(G(l)&&!ze(c,a)))return l;var j=v.get(a);if(j!=null)return j.proxy;var k=function(b){return le(e,d,v,h,o,c,a,b)},V=function(b){L(e,d,v,h,o,!0,c,a,b)},U=function(b){for(;;){var C=b,y=$(C);if(y==null)return C;var P;switch(y.TAG){case"Computed":P=k(y._0);break;case"Source":var M=y._0,B=M.value,W={contents:B},m=function(K){return function(ie){K.contents=ie,V(ie)}}(W),X=M.source;P=k((m(B),function(K,ue){return function(){return ue(m),K.contents}}(W,X)));break;case"Store":var z=y._0;P=k(function(K){return function(){return K(V)}}(z));break;case"Compiled":var F=y._0.rebuild;P=F();break}if(!G(P))return P;b=P}},S=U(l);if(Reflect.set(c,a,S),!G(S))return S;var O=ne(e,S);return v.set(a,O),O.proxy}}}(t,i,f,p),ownKeys:function(v){return function(d){var h=Reflect.ownKeys(d),o=e.observer;if(o!=null){var c=H(v,I);o.observing.push(c)}return h}}(i)});return s.proxy=R,s}}function Ge(e){return function(n){return G(n)||fe("tilia: value is not an object or array"),ne(e,n).proxy}}function Ae(e){return function(n){var r={TAG:"Computed",_0:function(){return n(e.contents)}};return Reflect.set(r,A,!0),r}}function Ee(e){return{derived:e}}function ke(e){return function(n){var r={contents:{}},t=Ee(Ae(r)),i=n(t);G(i)||fe("tilia: value is not an object or array");var f=ne(e,i).proxy;return r.contents=f,f}}function qe(e){return function(n){var r=function(){var t=[],i={root:e,notify:r,observing:t};e.observer=i;var f=i;n(),D(f,!0)};r()}}function De(e,n){return function(r,t){var i=function(){var u=n(i),s=r();u.root.observer=void 0,e.lock?t(s):(e.lock=!0,t(s),e.lock=!1),D(u,!1)},f=n(i);r(),D(f,!1)}}function Me(e){return function(n){return e.lock?n():(e.lock=!0,n(),e.lock=!1,Q(e))}}function re(e){var n={TAG:"Computed",_0:e};return Reflect.set(n,A,!0),n}function oe(e,n){var r={TAG:"Source",_0:{source:e,value:n}};return Reflect.set(r,A,!0),r}function ce(e){var n={TAG:"Store",_0:e};return Reflect.set(n,A,!0),n}function Be(e){return function(n){return e({value:re(function(){return n()})})}}function ve(e){e.root.observer=void 0}function Ve(e,n,r,t,i,f,u,s){return{tilia:e,carve:n,observe:r,watch:t,batch:i,signal:f,derived:u,_observe:s}}function te(e){var n=e!==void 0?e:50,r={active:new Set,quarantine:new Set,threshold:n},t={observer:void 0,expired:new Set,lock:!1,gc:r},i=Ge(t),f=function(u){var s=[],p={root:t,notify:u,observing:s};return t.observer=p,p};return Ve(i,ke(t),qe(t),De(t,f),Me(t),function(u){return i({value:u})},Be(i),f)}var Z=Reflect.get(globalThis,ae),_,se=0;Z==null?se=1:_=Z;se===1&&(x=te(void 0),Reflect.set(globalThis,ae,x),_=x);var x;function de(e){var n={};return Object.defineProperty(n,"data",{writable:!1,enumerable:!0,configurable:!1,value:e}),n}var be=_.tilia,ge=_.carve,he=_.observe,pe=_.watch,Re=_.batch,we=_.signal,_e=_.derived,Se=_._observe;function Ce(e){return Reflect.get(e,J)} //# sourceMappingURL=index.cjs.map