UNPKG

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