state-decorator
Version:
React state management library
3 lines (2 loc) • 13.3 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./impl"),t=require("./development");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=n(e),o=function(){return o=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var u in r=arguments[t])Object.prototype.hasOwnProperty.call(r,u)&&(e[u]=r[u]);return e},o.apply(this,arguments)};function c(e){var r={exports:{}};return e(r,r.exports),r.exports}"function"==typeof SuppressedError&&SuppressedError;var i="function"==typeof Object.is?Object.is:function(e,r){return e===r&&(0!==e||1/e==1/r)||e!=e&&r!=r},a=u.default.useState,l=u.default.useEffect,f=u.default.useLayoutEffect,s=u.default.useDebugValue;function d(e){var r=e.getSnapshot;e=e.value;try{var t=r();return!i(e,t)}catch(e){return!0}}var v="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,r){return r()}:function(e,r){var t=r(),n=a({inst:{value:t,getSnapshot:r}}),u=n[0].inst,o=n[1];return f((function(){u.value=t,u.getSnapshot=r,d(u)&&o({inst:u})}),[e,t,r]),l((function(){return d(u)&&o({inst:u}),e((function(){d(u)&&o({inst:u})}))}),[e]),s(t),t},p={useSyncExternalStore:void 0!==u.default.useSyncExternalStore?u.default.useSyncExternalStore:v},O=c((function(e,r){"production"!==process.env.NODE_ENV&&function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=u.default,t=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function n(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),u=1;u<r;u++)n[u-1]=arguments[u];!function(e,r,n){var u=t.ReactDebugCurrentFrame.getStackAddendum();""!==u&&(r+="%s",n=n.concat([u]));var o=n.map((function(e){return String(e)}));o.unshift("Warning: "+r),Function.prototype.apply.call(console[e],console,o)}("error",e,n)}var o="function"==typeof Object.is?Object.is:function(e,r){return e===r&&(0!==e||1/e==1/r)||e!=e&&r!=r},c=e.useState,i=e.useEffect,a=e.useLayoutEffect,l=e.useDebugValue,f=!1,s=!1;function d(e){var r=e.getSnapshot,t=e.value;try{var n=r();return!o(t,n)}catch(e){return!0}}var v=!!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?function(e,r,t){return r()}:function(r,t,u){f||void 0!==e.startTransition&&(f=!0,n("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var v=t();if(!s){var p=t();o(v,p)||(n("The result of getSnapshot should be cached to avoid an infinite loop"),s=!0)}var O=c({inst:{value:v,getSnapshot:t}}),_=O[0].inst,E=O[1];return a((function(){_.value=v,_.getSnapshot=t,d(_)&&E({inst:_})}),[r,v,t]),i((function(){d(_)&&E({inst:_});return r((function(){d(_)&&E({inst:_})}))}),[r]),l(v),v},p=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:v;r.useSyncExternalStore=p,"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()})),_=p,E=O,S=c((function(e){"production"===process.env.NODE_ENV?e.exports=_:e.exports=E})),y=S;var g,L="function"==typeof Object.is?Object.is:function(e,r){return e===r&&(0!==e||1/e==1/r)||e!=e&&r!=r},b=S.useSyncExternalStore,R=u.default.useRef,A=u.default.useEffect,h=u.default.useMemo,x=u.default.useDebugValue,D={useSyncExternalStoreWithSelector:function(e,r,t,n,u){var o=R(null);if(null===o.current){var c={hasValue:!1,value:null};o.current=c}else c=o.current;o=h((function(){function e(e){if(!a){if(a=!0,o=e,e=n(e),void 0!==u&&c.hasValue){var r=c.value;if(u(r,e))return i=r}return i=e}if(r=i,L(o,e))return r;var t=n(e);return void 0!==u&&u(r,t)?r:(o=e,i=t)}var o,i,a=!1,l=void 0===t?null:t;return[function(){return e(r())},null===l?void 0:function(){return e(l())}]}),[r,t,n,u]);var i=b(e,o[0],o[1]);return A((function(){c.hasValue=!0,c.value=i}),[i]),x(i),i}},M=c((function(e,r){"production"!==process.env.NODE_ENV&&function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=u.default,t=S;var n="function"==typeof Object.is?Object.is:function(e,r){return e===r&&(0!==e||1/e==1/r)||e!=e&&r!=r},o=t.useSyncExternalStore,c=e.useRef,i=e.useEffect,a=e.useMemo,l=e.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,r,t,u,f){var s,d=c(null);null===d.current?(s={hasValue:!1,value:null},d.current=s):s=d.current;var v=a((function(){var e,o,c=!1,i=function(r){if(!c){c=!0,e=r;var t=u(r);if(void 0!==f&&s.hasValue){var i=s.value;if(f(i,t))return o=i,i}return o=t,t}var a=o;if(n(e,r))return a;var l=u(r);return void 0!==f&&f(a,l)?a:(e=r,o=l,l)},a=void 0===t?null:t;return[function(){return i(r())},null===a?void 0:function(){return i(a())}]}),[r,t,u,f]),p=v[0],O=v[1],_=o(e,p,O);return i((function(){s.hasValue=!0,s.value=_}),[_]),l(_),_},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()})),m=D,T=M,C=c((function(e){"production"===process.env.NODE_ENV?e.exports=m:e.exports=T}));exports.ConflictPolicy=void 0,(g=exports.ConflictPolicy||(exports.ConflictPolicy={})).REJECT="reject",g.IGNORE="ignore",g.KEEP_LAST="keepLast",g.KEEP_ALL="keepAll",g.PARALLEL="parallel",g.REUSE="reuse",g.ABORT="abort";var j=C.useSyncExternalStoreWithSelector,w=y.useSyncExternalStore;function P(e){var n=r.createRef(),u=r.createRef(),c=r.createRef(),i=r.createRef(),a=r.createRef(),l=r.createRef(),f=r.createRef(),s=r.createRef(),d=r.createRef(),v=r.createRef(),p=r.createRef(),O=r.createRef(!1),_=r.createRef(!1),E=r.createRef(),S=r.createRef([]),y=e.actions,g=e.middlewares,L=void 0===g?[]:g,b=function(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var u=0;for(n=Object.getOwnPropertySymbols(e);u<n.length;u++)r.indexOf(n[u])<0&&Object.prototype.propertyIsEnumerable.call(e,n[u])&&(t[n[u]]=e[n[u]])}return t}(e,["actions","middlewares"]),R=r.isFuncConfig(e)?e.getInitialState:function(){return e.initialState},A={},h=0;function x(){E.current=o(o(o(o(o({},c.current),i.current),n.current),u.current.state),{isLoading:w,abortAction:P,loading:s.current,loadingMap:f.current,loadingParallelMap:l.current,errorMap:I(),errorParallelMap:d.current}),_.current=!1,Object.keys(A).forEach((function(e){var r;null===(r=A[e])||void 0===r||r.call(A)}))}function D(e){n.current=e,r.computeDerivedValues(n,c,u,b),x()}function M(e){l.current=e,f.current=function(){if(O.current){var e=l.current;return Object.keys(e).reduce((function(r,t){var n=e[t];return r[t]=null!=Object.keys(n).find((function(e){return!!n[e]})),r}),{})}return null}(),s.current=function(){if(O.current){var e=l.current;return null!=Object.keys(e).find((function(r){var t=e[r];return Object.keys(t).find((function(e){return!!t[e]}))}))}return null}()}function m(o){var l;if(!O.current){c.current=o,O.current=!0,n.current=R(o);var f=new Set(null==b?void 0:b.initialActionsMarkedLoading),s=Object.keys(y).reduce((function(e,t){var n;return e[t]=f.has(t)?((n={})[r.DEFAULT_PROMISE_ID]=!0,n):{},e}),{});M(s),d.current=Object.keys(y).reduce((function(e,r){return e[r]={},e}),{}),a.current={},v.current={},p.current={},u.current={state:null,deps:{}},(null==b?void 0:b.derivedState)&&r.fixDerivedDeps(b),S.current=[];var _={options:b,get state(){return n.current},actions:y,setState:D};e.logEnabled&&t.logDetailedEffects&&L.push(t.logDetailedEffects());var E=function(e){var r,t=e();S.current.push(t),null===(r=t.init)||void 0===r||r.call(t,_)};null===(l=r.globalConfig.defaultMiddlewares)||void 0===l||l.forEach(E),null==L||L.forEach(E),r.computeDerivedValues(n,c,u,b),r.onPropChange(n,u,c,null,i,b,R,C,!0,!1),(null==b?void 0:b.onMount)&&b.onMount(r.buildOnMountInvocationContext(n,u,c,i)),x()}}function T(e,t){void 0===t&&(t=r.DEFAULT_PROMISE_ID);var n=d.current[e];(null==n?void 0:n[t])&&delete n[t],x()}function C(e,t,o,i,a,f,s,d,v){void 0===s&&(s=!1),void 0===d&&(d=!1),void 0===v&&(v=!1);var p=!1;if(!O.current)return x;var _=t,E=!!a&&r.isLoadingImpl(_||l.current,[o,null==f?void 0:f.promiseId]),y=r.runMiddlewares(S.current,n.current,e,E,o,i,a,f),g=y.newState,L=y.newLoading;if(null!=g&&(p=!0,n.current=g),E!==L&&(_=r.buildLoadingMap(_,o,(null==f?void 0:f.promiseId)||r.DEFAULT_PROMISE_ID,L),0===Object.keys(_).length&&(_=void 0)),null!=_&&(p=!0,M(_)),p)r.computeDerivedValues(n,c,u,b),d||(n.current=g||n.current,v||x());else if(s){!r.computeDerivedValues(n,c,u,b)||d||v||x()}return x}var j=Object.keys(y);function w(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.isLoadingImpl.apply(void 0,function(e,r,t){if(t||2===arguments.length)for(var n,u=0,o=r.length;u<o;u++)!n&&u in r||(n||(n=Array.prototype.slice.call(r,0,u)),n[u]=r[u]);return e.concat(n||Array.prototype.slice.call(r))}([l.current],e,!1))}function P(e,t){var n,u;void 0===t&&(t=r.DEFAULT_PROMISE_ID);var o=null===(u=null===(n=v.current[e])||void 0===n?void 0:n[t])||void 0===u?void 0:u.abortController,c=!1;return o&&(o.abort(),c=!0),c}function I(){return O.current?r.buildErrorMap(d.current):null}return i.current=j.reduce((function(e,t){var o=y[t];return r.isSimpleSyncAction(o)?e[t]=r.decorateSimpleSyncAction(t,o,n,u,c,O,b,C):r.isAsyncAction(o)?e[t]=r.decorateAsyncAction({actionName:t,stateRef:n,derivedStateRef:u,propsRef:c,loadingParallelMapRef:l,errorMapRef:d,actionsRef:i,promisesRef:v,conflictActionsRef:p,initializedRef:O,timeoutRef:a,needNotifyListenersRef:_,options:b,setState:C,clearError:T,action:r.computeAsyncActionInput(o)}):r.isSyncAction(o)&&(e[t]=r.decorateSyncAction(t,o,n,u,c,i,O,a,_,b,C,T)),e}),{}),{getConfig:function(){return o({},e)},setProps:function(e){var t=c.current;c.current=e,O.current?r.onPropChange(n,u,c,t,i,b,R,C,!1,!1):m(e)},addStateListener:function(e){var r="".concat(h++);return A[r]=e,function(){delete A[r]}},init:m,destroy:function(){var e;if(O.current){var t=Object.keys(y).reduce((function(e,t){var n=y[t];if(r.isAsyncAction(n)&&n.abortable){var u=l.current[t],o=Object.keys(u).reduce((function(e,r){return u[r]&&(P(t,r),e.push(r)),e}),[]);o.length>0&&(e[t]=o)}return e}),{});null===(e=null==b?void 0:b.onUnmount)||void 0===e||e.call(b,r.buildOnUnMountInvocationContext(n,u,c,t)),Object.keys(a.current).forEach((function(e){clearTimeout(a.current[e])})),c.current=null,n.current=null,l.current=null,f.current=null,s.current=null,d.current=null,v.current=null,p.current=null,u.current=null,E.current=null,a.current=null,A={},O.current=!1,S.current.forEach((function(e){var r;null===(r=e.destroy)||void 0===r||r.call(e)})),S.current=[]}},isLoading:w,abortAction:P,clearError:T,getSnapshot:function(){return E.current},invokeOnMountDeferred:function(){r.onPropChange(n,u,c,null,i,b,R,C,!0,!0),(null==b?void 0:b.onMountDeferred)&&b.onMountDeferred(r.buildOnMountInvocationContext(n,u,c,i))},get actions(){return i.current},get state(){return O.current?o(o({},n.current),u.current.state):null},get loading(){return s.current},get loadingMap(){return f.current},get errorMap(){return I()},get loadingParallelMap(){return O.current?l.current:null},get errorParallelMap(){return O.current?d.current:null}}}function I(t,n){var u=e.useMemo((function(){return n instanceof Function?n:function(e){return k(e,n)}}),[n]);return j(t.addStateListener,t.getSnapshot,void 0,u,r.globalConfig.comparator)}function V(r,t,n){void 0===n&&(n=!0);var u=e.useRef();return null==u.current&&(u.current=P(r)),e.useEffect((function(){return u.current.invokeOnMountDeferred(),function(){var e;null===(e=u.current)||void 0===e||e.destroy()}}),[]),function(r,t,n){void 0===t&&(t=null),void 0===n&&(n=!0);var u=e.useReducer((function(e){return e>100?0:e+1}),0)[1],o=e.useRef(r);return r.setProps(t),e.useLayoutEffect((function(){r.init(t)}),[]),e.useLayoutEffect((function(){if(n)return o.current.addStateListener((function(){u()}))}),[n]),r}(u.current,t,n)}function k(e,r){return r.reduce((function(r,t){return e.hasOwnProperty(t)&&(r[t]=e[t]),r}),{})}Object.defineProperty(exports,"EffectError",{enumerable:!0,get:function(){return r.EffectError}}),Object.defineProperty(exports,"ParallelActionError",{enumerable:!0,get:function(){return r.ParallelActionError}}),Object.defineProperty(exports,"setGlobalConfig",{enumerable:!0,get:function(){return r.setGlobalConfig}}),exports.createStore=P,exports.default=V,exports.pick=k,exports.slice=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return function(r){return k(r,e)}},exports.useBindStore=function(r,t){return r.setProps(t),w(r.addStateListener,r.getSnapshot),e.useLayoutEffect((function(){r.init(t)}),[]),e.useEffect((function(){r.invokeOnMountDeferred()}),[r]),r},exports.useLocalStore=V,exports.useStore=function(e){return w(e.addStateListener,e.getSnapshot),e},exports.useStoreContextSlice=function(r,t){return I(e.useContext(r),t)},exports.useStoreSlice=I;
//# sourceMappingURL=index.js.map