UNPKG

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