UNPKG

5.64 kBJavaScriptView Raw
1!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).jotaiVanilla={})}(this,(function(n){"use strict";var t=0;var e,r=function(n){return"init"in n},i=function(n){return!!n.write},o=new WeakMap,u=function(n,t){var e=o.get(n);e&&(o.delete(n),e(t))},a=function(n,t){n.status="fulfilled",n.value=t},f=function(n,t){n.status="rejected",n.reason=t},c=function(n,t){return"v"in n&&"v"in t&&Object.is(n.v,t.v)},v=function(n,t){return"e"in n&&"e"in t&&Object.is(n.e,t.e)},l=function(n){return"v"in n&&n.v instanceof Promise},d=function(n){if("e"in n)throw n.e;return n.v},s=function(){var n=new WeakMap,t=new WeakMap,e=new Map,s=function(t){return n.get(t)},g=function(t,r){var i=n.get(t);if(n.set(t,r),e.has(t)||e.set(t,i),i&&l(i)){var o="v"in r?r.v instanceof Promise?r.v:Promise.resolve(r.v):Promise.reject(r.e);u(i.v,o)}},h=function(n,t,e){var r=new Map,i=!1;e.forEach((function(e,o){e||o!==n||(e=t),e&&(r.set(o,e),t.d.get(o)!==e&&(i=!0))})),(i||t.d.size!==r.size)&&(t.d=r)},p=function(n,t,e){var r,i,o=s(n),u={d:(null==o?void 0:o.d)||new Map,v:t};if(e&&h(n,u,e),o&&c(o,u)&&o.d===u.d)return o;if(o&&l(o)&&l(u)&&(i=u,"v"in(r=o)&&"v"in i&&r.v.orig&&r.v.orig===i.v.orig)){if(o.d===u.d)return o;u.v=o.v}return g(n,u),u},w=function(n,e,r,i){if("function"==typeof(null==(v=e)?void 0:v.then)){var u,c=new Promise((function(i,o){var v=!1;e.then((function(e){if(!v){v=!0;var o=s(n),u=p(n,c,r);a(c,e),i(e),t.has(n)&&(null==o?void 0:o.d)!==u.d&&A(n,u,null==o?void 0:o.d)}}),(function(e){if(!v){v=!0;var i=s(n),u=p(n,c,r);f(c,e),o(e),t.has(n)&&(null==i?void 0:i.d)!==u.d&&A(n,u,null==i?void 0:i.d)}})),u=function(n){v||(v=!0,n.then((function(n){return a(c,n)}),(function(n){return f(c,n)})),i(n))}}));return c.orig=e,c.status="pending",function(n,t){o.set(n,t),n.catch((function(){})).finally((function(){return o.delete(n)}))}(c,(function(n){n&&u(n),null==i||i()})),p(n,c,r)}var v;return p(n,e,r)},y=function n(e,o){var u=s(e);if(!o&&u){if(t.has(e))return u;if(Array.from(u.d).every((function(t){var r=t[0],i=t[1];return r===e||n(r)===i})))return u}var a,f,c=new Map,l=!0,p={get signal(){return a||(a=new AbortController),a.signal},get setSelf(){return!f&&i(e)&&(f=function(){if(!l){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];return b.apply(void 0,[e].concat(t))}}),f}};try{var y=e.read((function(t){if(t===e){var i=s(t);if(i)return c.set(t,i),d(i);if(r(t))return c.set(t,void 0),t.init;throw new Error("no atom init")}var o=n(t);return c.set(t,o),d(o)}),p);return w(e,y,c,(function(){var n;return null==(n=a)?void 0:n.abort()}))}catch(n){return function(n,t,e){var r=s(n),i={d:(null==r?void 0:r.d)||new Map,e:t};return e&&h(n,i,e),r&&v(r,i)&&r.d===i.d?r:(g(n,i),i)}(e,n,c)}finally{l=!1}},E=function(n,t){return!t.l.size&&(!t.t.size||1===t.t.size&&t.t.has(n))},m=function(n){if(n.size){var e=new Map,r=new WeakMap;n.forEach((function n(i){var o=t.get(i);null==o||o.t.forEach((function(t){t!==i&&(e.set(t,(e.get(t)||new Set).add(i)),r.set(t,(r.get(t)||0)+1),n(t))}))}));n.forEach((function n(i){var o=t.get(i);null==o||o.t.forEach((function(t){if(t!==i){var o=r.get(t);if(o&&r.set(t,--o),!o){var u,a=!(null==(u=e.get(t))||!u.size);if(a){var f=s(t),v=y(t,!0);a=!f||!c(f,v)}a||e.forEach((function(n){return n.delete(t)}))}n(t)}}))})),n.clear()}},M=function n(t,e){for(var i=!0,o=arguments.length,u=new Array(o>2?o-2:0),a=2;a<o;a++)u[a-2]=arguments[a];var f=e.write.apply(e,[function(n){return d(y(n))},function(o){for(var u,a=arguments.length,f=new Array(a>1?a-1:0),v=1;v<a;v++)f[v-1]=arguments[v];if(o===e){if(!r(o))throw new Error("atom not writable");var l=s(o),d=w(o,f[0]);l&&c(l,d)||t.add(o)}else u=n.apply(void 0,[t,o].concat(f));return i||(m(t),j()),u}].concat(u));return i=!1,f},b=function(n){for(var t=new Set,e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];var o=M.apply(void 0,[t,n].concat(r));return m(t),j(),o},S=function n(e,r,o){var u,a=o||[];null==(u=s(e))||u.d.forEach((function(r,i){var o=t.get(i);o?o.t.add(e):i!==e&&n(i,e,a)})),y(e);var f={t:new Set(r&&[r]),l:new Set};if(t.set(e,f),i(e)&&e.onMount){var c=e.onMount;a.push((function(){var n=c((function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];return b.apply(void 0,[e].concat(t))}));n&&(f.u=n)}))}return o||a.forEach((function(n){return n()})),f},z=function n(e){var r,i=null==(r=t.get(e))?void 0:r.u;i&&i(),t.delete(e);var o=s(e);o&&(l(o)&&u(o.v),o.d.forEach((function(r,i){if(i!==e){var o=t.get(i);o&&(o.t.delete(e),E(i,o)&&n(i))}})))},A=function(n,e,r){var i=new Set(e.d.keys());null==r||r.forEach((function(e,r){if(i.has(r))i.delete(r);else{var o=t.get(r);o&&(o.t.delete(n),E(r,o)&&z(r))}})),i.forEach((function(e){var r=t.get(e);r?r.t.add(n):t.has(n)&&S(e,n)}))},j=function(){for(;e.size;){var n=Array.from(e);e.clear(),n.forEach((function(n){var e=n[0],r=n[1],i=s(e);if(i){var o=t.get(e);o&&i.d!==(null==r?void 0:r.d)&&A(e,i,null==r?void 0:r.d),!o||r&&!l(r)&&(c(r,i)||v(r,i))||o.l.forEach((function(n){return n()}))}}))}};return{get:function(n){return d(y(n))},set:b,sub:function(n,e){var r=function(n){var e=t.get(n);return e||(e=S(n)),e}(n);j();var i=r.l;return i.add(e),function(){i.delete(e),function(n){var e=t.get(n);e&&E(n,e)&&z(n)}(n)}}}};n.atom=function(n,e){var r="atom"+ ++t,i={toString:function(){return r}};return"function"==typeof n?i.read=n:(i.init=n,i.read=function(n){return n(i)},i.write=function(n,t,e){return t(i,"function"==typeof e?e(n(i)):e)}),e&&(i.write=e),i},n.createStore=s,n.getDefaultStore=function(){return e||(e=s()),e}}));