UNPKG

jotai

Version:

👻 Next gen state management that will spook you

2 lines (1 loc) • 8.79 kB
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).jotai={},n.React)}(this,(function(n,e){"use strict";function r(){return r=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},r.apply(this,arguments)}function t(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function o(n,e){var r="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(r)return(r=r.call(n)).next.bind(r);if(Array.isArray(n)||(r=function(n,e){if(n){if("string"==typeof n)return t(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(n,e):void 0}}(n))||e&&n&&"number"==typeof n.length){r&&(n=r);var o=0;return function(){return o>=n.length?{done:!0}:{done:!1,value:n[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i=Symbol(),u=function(n){return!!n[i]},a=function(n){var e,r;null==(e=(r=n[i]).c)||e.call(r)},f=function n(e,r){var t=e[i].o,o=r[i].o;return t===o||e===o||u(t)&&n(t,r)},c=function(n){var e={o:n,c:null},r=new Promise((function(r){e.c=function(){e.c=null,r()},n.then(e.c,e.c)}));return r[i]=e,r},v=function(n){return"init"in n},l=function(n){var e,t=new WeakMap,l=new WeakMap,s=new Map;if(n)for(var d,p=o(n);!(d=p()).done;){var h=d.value,w=h[0],m={v:h[1],r:0,d:new Map};t.set(w,m)}var g=new WeakMap,y=new WeakMap,E=function(n){var e=y.get(n);return e||(e=new Map,y.set(n,e)),e},b=function n(e,r){if(e){var o=E(e),i=o.get(r);return i||(i=n(e.p,r))&&("p"in i&&i.p.then((function(){return o.delete(r)})),o.set(r,i)),i}return t.get(r)},S=function(n,e,r){if(n){E(n).set(e,r)}else{var o=t.get(e);t.set(e,r),s.has(e)||s.set(e,o)}},A=function(n,e,r){if(void 0===e&&(e=new Map),!r)return e;var t=new Map,o=!1;return r.forEach((function(r){var i,u=(null==(i=b(n,r))?void 0:i.r)||0;t.set(r,u),e.get(r)!==u&&(o=!0)})),e.size!==t.size||o?t:e},M=function(n,e,r,t,o){var i=b(n,e);if(i){if(o&&(!("p"in i)||!f(i.p,o)))return i;"p"in i&&a(i.p)}var u={v:r,r:(null==i?void 0:i.r)||0,d:A(n,null==i?void 0:i.d,t)};return i&&"v"in i&&Object.is(i.v,r)?u.d===i.d||u.d.size===i.d.size&&Array.from(u.d.keys()).every((function(n){return i.d.has(n)}))||Promise.resolve().then((function(){I(n)})):(++u.r,u.d.has(e)&&(u.d=new Map(u.d).set(e,u.r))),S(n,e,u),u},_=function(n,e,r,t,o){var i=b(n,e);if(i){if(o&&(!("p"in i)||!f(i.p,o)))return i;"p"in i&&a(i.p)}var u={e:r,r:(null==i?void 0:i.r)||0,d:A(n,null==i?void 0:i.d,t)};return S(n,e,u),u},j=function(n,e,r,t){var o=b(n,e);if(o&&"p"in o){if(f(o.p,r))return o;a(o.p)}!function(n,e,r){var t=g.get(e);t||(t=new Map,g.set(e,t)),r.then((function(){t.get(n)===r&&(t.delete(n),t.size||g.delete(e))})),t.set(n,r)}(n,e,r);var i={p:r,r:(null==o?void 0:o.r)||0,d:A(n,null==o?void 0:o.d,t)};return S(n,e,i),i},C=function(n,e,r,t){if(r instanceof Promise){var o=c(r.then((function(r){M(n,e,r,t,o),I(n)})).catch((function(r){if(r instanceof Promise)return u(r)?r.then((function(){P(n,e,!0)})):r;_(n,e,r,t,o),I(n)})));return j(n,e,o,t)}return M(n,e,r,t)},P=function n(e,r,t){if(!t){var o=b(e,r);if(o){if(o.r!==o.i&&"p"in o&&!function(n){return!n[i].c}(o.p))return o;if(o.d.forEach((function(t,o){if(o!==r)if(l.has(o)){var i=b(e,o);i&&i.r===i.i&&n(e,o)}else n(e,o)})),Array.from(o.d).every((function(n){var r=n[0],t=n[1],o=b(e,r);return o&&"v"in o&&o.r===t})))return o}}var u=new Set;try{var a=r.read((function(t){u.add(t);var o=t===r?b(e,t):n(e,t);if(o){if("e"in o)throw o.e;if("p"in o)throw o.p;return o.v}if(v(t))return t.init;throw new Error("no atom init")}));return C(e,r,a,u)}catch(n){if(n instanceof Promise){var f=c(n);return j(e,r,f,u)}return _(e,r,n,u)}},k=function(n,e){return!e.l.size&&(!e.t.size||1===e.t.size&&e.t.has(n))},z=function n(e,t){var o=l.get(t);null==o||o.t.forEach((function(o){o!==t&&(!function(n,e){var t=b(n,e);if(t){var o=r({},t,{i:t.r});S(n,e,o)}}(e,o),n(e,o))}))},O=function n(e,r,t){var o=!0,i=r.write((function n(r,t){var o=P(e,r);if("e"in o)throw o.e;if("p"in o){if(null!=t&&t.unstable_promise)return o.p.then((function(){return n(r,t)}));throw o.p}if("v"in o)return o.v;throw new Error("no value found")}),(function(t,i){var u;if(t===r){if(!v(t))throw new Error("atom not writable");var f=function(n){var e=new Set,r=g.get(n);return r&&(g.delete(n),r.forEach((function(n,r){a(n),e.add(r)}))),e}(t);f.forEach((function(n){n!==e&&C(n,t,i)})),C(e,t,i),z(e,t)}else u=n(e,t,i);return o||I(e),u}),t);return o=!1,e=void 0,i},R=function(n,e,r){var t=O(r,n,e);return I(r),t},T=function n(e,r){var t={t:new Set(r&&[r]),l:new Set};if(l.set(e,t),P(void 0,e).d.forEach((function(r,t){var o=l.get(t);o?o.t.add(e):t!==e&&n(t,e)})),function(n){return!!n.write}(e)&&e.onMount){var o=e.onMount((function(n){return R(e,n)}));o&&(t.u=o)}return t},x=function n(e){var r,t=null==(r=l.get(e))?void 0:r.u;t&&t(),l.delete(e);var o=b(void 0,e);o&&o.d.forEach((function(r,t){if(t!==e){var o=l.get(t);o&&(o.t.delete(e),k(t,o)&&n(t))}}))},N=function(n,e,r){var t=new Set(e.d.keys());null==r||r.forEach((function(e,r){if(t.has(r))t.delete(r);else{var o=l.get(r);o&&(o.t.delete(n),k(r,o)&&x(r))}})),t.forEach((function(e){var r=l.get(e);r?r.t.add(n):l.has(n)&&T(e,n)}))},I=function(n){if(n)E(n).forEach((function(e,r){if(e!==t.get(r)){var o=l.get(r);null==o||o.l.forEach((function(e){return e(n)}))}}));else for(;s.size;){var e=Array.from(s);s.clear(),e.forEach((function(n){var e=n[0],r=n[1],t=b(void 0,e);t&&t.d!==(null==r?void 0:r.d)&&N(e,t,null==r?void 0:r.d);var o=l.get(e);null==o||o.l.forEach((function(n){return n()}))}))}};return(e={}).r=function(n,e){return P(e,n)},e.w=R,e.c=function(n,e){e&&function(n){E(n).forEach((function(n,e){var r=t.get(e);(n.r>((null==r?void 0:r.r)||0)||"v"in n&&n.r===(null==r?void 0:r.r)&&n.d!==(null==r?void 0:r.d))&&(t.set(e,n),n.d!==(null==r?void 0:r.d)&&N(e,n,null==r?void 0:r.d))}))}(e),I(void 0)},e.s=function(n,e){var r=function(n){var e=l.get(n);return e||(e=T(n)),e}(n).l;return r.add(e),function(){r.delete(e),function(n){var e=l.get(n);e&&k(n,e)&&x(n)}(n)}},e.h=function(n,e){for(var r,t=o(n);!(r=t()).done;){var i=r.value,u=i[0],a=i[1];v(u)&&(C(e,u,a),z(e,u))}I(e)},e},s=function(n,e){return{s:e?e(n).SECRET_INTERNAL_store:l(n)}},d=new Map,p=function(n){return d.has(n)||d.set(n,e.createContext(s())),d.get(n)},h=0;function w(n,r){var t=p(r),o=e.useContext(t).s,i=e.useCallback((function(e){var r=o.r(n,e);if("e"in r)throw r.e;if("p"in r)throw r.p;if("v"in r)return r.v;throw new Error("no atom value")}),[o,n]),u=e.useReducer(e.useCallback((function(e,r){var t=i(r);return Object.is(e[1],t)&&e[2]===n?e:[r,t,n]}),[i,n]),void 0,(function(){var e=void 0;return[e,i(e),n]})),a=u[0],f=a[0],c=a[1],v=a[2],l=u[1];return v!==n&&l(void 0),e.useEffect((function(){var e=o.s(n,l);return l(void 0),e}),[o,n]),e.useEffect((function(){o.c(n,f)})),e.useDebugValue(c),c}function m(n,r){var t=p(r),o=e.useContext(t),i=o.s,u=o.w;return e.useCallback((function(e){if(!("write"in n)&&"object"==typeof process&&"production"!==process.env.NODE_ENV)throw new Error("not writable atom");var r=function(r){return i.w(n,e,r)};return u?u(r):r()}),[i,u,n])}n.Provider=function(n){var r=n.children,t=n.initialValues,o=n.scope,i=n.unstable_createStore,u=n.unstable_enableVersionedWrite,a=e.useState(),f=a[0],c=a[1];e.useEffect((function(){f&&(v.current.s.c(null,f),delete f.p)}),[f]);var v=e.useRef();v.current||(v.current=s(t,i),u&&(v.current.w=function(n){c((function(e){var r=e?{p:e}:{};return n(r),r}))}));var l=p(o);return e.createElement(l.Provider,{value:v.current},r)},n.SECRET_INTERNAL_getScopeContext=p,n.atom=function(n,e){var r="atom"+ ++h,t={toString:function(){return r}};return"function"==typeof n?t.read=n:(t.init=n,t.read=function(n){return n(t)},t.write=function(n,e,r){return e(t,"function"==typeof r?r(n(t)):r)}),e&&(t.write=e),t},n.unstable_createStore=function(n){var e=l(n);return{get:function(n){var r=e.r(n);if("e"in r)throw r.e;if(!("p"in r))return r.v},asyncGet:function n(r){return new Promise((function(t,o){var i=e.r(r);"e"in i?o(i.e):t("p"in i?i.p.then((function(){return n(r)})):i.v)}))},set:function(n,r){return e.w(n,r)},sub:function(n,r){return e.s(n,r)},SECRET_INTERNAL_store:e}},n.useAtom=function(n,e){return"scope"in n&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=n.scope),[w(n,e),m(n,e)]},n.useAtomValue=w,n.useSetAtom=m,Object.defineProperty(n,"__esModule",{value:!0})}));