UNPKG

3.57 kBJavaScriptView Raw
1System.register([],function(z){"use strict";return{execute:function(){z("atom",T);let R=0;function T(s,i){const v=`atom${++R}`,f={toString:()=>v};return typeof s=="function"?f.read=s:(f.init=s,f.read=m=>m(f),f.write=(m,M,g)=>M(f,typeof g=="function"?g(m(f)):g)),i&&(f.write=i),f}const P=s=>"init"in s,q=s=>!!s.write,E=new WeakMap,U=(s,i)=>{E.set(s,i),s.catch(()=>{}).finally(()=>E.delete(s))},B=(s,i)=>{const v=E.get(s);v&&(E.delete(s),v(i))},j=(s,i)=>"v"in s&&"v"in i&&Object.is(s.v,i.v),_=(s,i)=>"e"in s&&"e"in i&&Object.is(s.e,i.e),I=s=>"v"in s&&s.v instanceof Promise,S=s=>{if("e"in s)throw s.e;return s.v},$=z("createStore",()=>{const s=new WeakMap,i=new WeakMap,v=new Map,f=t=>s.get(t),m=(t,e)=>{const n=s.get(t);if(s.set(t,e),v.has(t)||v.set(t,n),n&&I(n)){const o="v"in e?e.v instanceof Promise?e.v:Promise.resolve(e.v):Promise.reject(e.e);B(n.v,o)}},M=(t,e,n)=>{const o=new Map;let r=!1;n.forEach(c=>{const l=c===t?e:f(c);l&&(o.set(c,l),e.d.get(c)!==l&&(r=!0))}),(r||e.d.size!==o.size)&&(e.d=o)},g=(t,e,n)=>{const o=f(t),r={d:(o==null?void 0:o.d)||new Map,v:e};return n&&M(t,r,n),o&&j(o,r)&&o.d===r.d?o:(m(t,r),r)},x=(t,e,n)=>{const o=f(t),r={d:(o==null?void 0:o.d)||new Map,e};return n&&M(t,r,n),o&&_(o,r)&&o.d===r.d?o:(m(t,r),r)},h=(t,e)=>{if(!e){const a=f(t);if(a&&(a.d.forEach((d,u)=>{u!==t&&!i.has(u)&&h(u)}),Array.from(a.d).every(([d,u])=>d===t||f(d)===u)))return a}const n=new Set;let o=!0;const r=a=>{if(n.add(a),a===t){const u=f(a);if(u)return S(u);if(P(a))return a.init;throw new Error("no atom init")}const d=h(a);return S(d)};let c,l;const b={get signal(){return c||(c=new AbortController),c.signal},get setSelf(){return!l&&q(t)&&(l=(...a)=>{if(!o)return D(t,...a)}),l}};try{const a=t.read(r,b);if(a instanceof Promise){let d;const u=new Promise((y,K)=>{a.then(w=>{u.status="fulfilled",u.value=w,y(w)},w=>{u.status="rejected",u.reason=w,K(w)}).finally(()=>{g(t,u,n)}),d=w=>y(w)});return u.status="pending",U(u,y=>{y&&d(y),c==null||c.abort()}),g(t,u,n)}return g(t,a,n)}catch(a){return x(t,a,n)}finally{o=!1}},F=t=>S(h(t)),G=t=>{let e=i.get(t);return e||(e=O(t)),e},A=(t,e)=>!e.l.size&&(!e.t.size||e.t.size===1&&e.t.has(t)),H=t=>{const e=i.get(t);e&&A(t,e)&&C(t)},W=t=>{const e=i.get(t);e==null||e.t.forEach(n=>{if(n!==t){const o=f(n),r=h(n);(!o||!j(o,r))&&W(n)}})},L=(t,...e)=>{let n=!0;const o=l=>S(h(l)),r=(l,...b)=>{let a;if(l===t){if(!P(l))throw new Error("atom not writable");const d=f(l),u=g(l,b[0]);(!d||!j(d,u))&&W(l)}else a=L(l,...b);return n||p(),a},c=t.write(o,r,...e);return n=!1,c},D=(t,...e)=>{const n=L(t,...e);return p(),n},O=(t,e)=>{const n={t:new Set(e&&[e]),l:new Set};if(i.set(t,n),h(t).d.forEach((o,r)=>{const c=i.get(r);c?c.t.add(t):r!==t&&O(r,t)}),h(t),q(t)&&t.onMount){const o=t.onMount((...r)=>D(t,...r));o&&(n.u=o)}return n},C=t=>{var e;const n=(e=i.get(t))==null?void 0:e.u;n&&n(),i.delete(t);const o=f(t);o&&(I(o)&&B(o.v),o.d.forEach((r,c)=>{if(c!==t){const l=i.get(c);l&&(l.t.delete(t),A(c,l)&&C(c))}}))},J=(t,e,n)=>{const o=new Set(e.d.keys());n==null||n.forEach((r,c)=>{if(o.has(c)){o.delete(c);return}const l=i.get(c);l&&(l.t.delete(t),A(c,l)&&C(c))}),o.forEach(r=>{const c=i.get(r);c?c.t.add(t):i.has(t)&&O(r,t)})},p=()=>{for(;v.size;){const t=Array.from(v);v.clear(),t.forEach(([e,n])=>{const o=f(e);if(o){o.d!==(n==null?void 0:n.d)&&J(e,o,n==null?void 0:n.d);const r=i.get(e);r==null||r.l.forEach(c=>c())}})}};return{get:F,set:D,sub:(t,e)=>{const n=G(t).l;return n.add(e),p(),()=>{n.delete(e),H(t)}},res:t=>{for(const[e,n]of t)P(e)&&(g(e,n),W(e));p()}}});let k;const N=z("getDefaultStore",()=>(k||(k=$()),k))}}});