state-decorator
Version:
React state management library
3 lines (2 loc) • 7.74 kB
JavaScript
import{createStore as e}from"./index";import{useReducer as n,useRef as r,useLayoutEffect as t,useEffect as o}from"react";var i,s=function(){return s=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var o in n=arguments[r])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},s.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError,function(e){e.REJECT="reject",e.IGNORE="ignore",e.KEEP_LAST="keepLast",e.KEEP_ALL="keepAll",e.PARALLEL="parallel",e.REUSE="reuse",e.ABORT="abort"}(i||(i={}));var u=function e(n,r){if(n===r)return!0;if(n&&r&&"object"==typeof n&&"object"==typeof r){if(n.constructor!==r.constructor)return!1;var t,o,i;if(Array.isArray(n)){if((t=n.length)!=r.length)return!1;for(o=t;0!=o--;)if(!e(n[o],r[o]))return!1;return!0}if(n.constructor===RegExp)return n.source===r.source&&n.flags===r.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===r.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===r.toString();if((t=(i=Object.keys(n)).length)!==Object.keys(r).length)return!1;for(o=t;0!=o--;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=t;0!=o--;){var s=i[o];if(!e(n[s],r[s]))return!1}return!0}return n!=n&&r!=r},c=null;function a(e){return!(e instanceof Function)&&e.hasOwnProperty("promiseGet")}function f(e){return!(e instanceof Function)&&(e.hasOwnProperty("promise")||e.hasOwnProperty("promiseGet"))}function l(e){return!(e instanceof Function||e.hasOwnProperty("promise")&&e.hasOwnProperty("promiseGet"))}function p(e){return e instanceof Function}function g(e){return!(e instanceof Function||e.hasOwnProperty("promise")||e.hasOwnProperty("promiseGet"))}function d(e){return Object.keys(e).reduce((function(n,r){var t=e[r];if(p(t))n[r]=function(e){return t(e.s,e.args,e.p)};else if(g(t)){var o={effects:function(e){return t.action(e.s,e.args,e.p)}};t.onActionDone&&(o.sideEffects=function(e){var n=e.s,r=e.p,o=e.args,i=e.a,s=e.notifyWarning;t.onActionDone(n,o,r,i,s)}),n[r]=o}else if(function(e){return!(e instanceof Function)&&e.hasOwnProperty("promise")}(t)||a(t)){var s;s=a(t)?{getPromise:function(e){var n=e.s,r=e.p,o=e.a,i=e.args,s=e.abortSignal;return t.promiseGet(i,n,r,o,s)},retryCount:3,conflictPolicy:i.REUSE}:{getPromise:function(e){var n=e.s,r=e.p,o=e.a,i=e.args,s=e.abortSignal;return t.promise(i,n,r,o,s)}},["abortable","conflictPolicy","getPromiseId","isTriggerRetryError","rejectPromiseOnError","retryCount","debounceTimeout","debounceSideEffectsTimeout","retryDelaySeed"].forEach((function(e){null!=t[e]&&(s[e]=t[e])})),t.successMessage&&(s.getSuccessMessage=function(){return t.successMessage}),t.errorMessage&&(s.getSuccessMessage=function(){return t.errorMessage}),t.getSuccessMessage&&(s.getSuccessMessage=function(e){var n=e.res,r=e.args,o=e.p;return t.getSuccessMessage(n,r,o)}),t.getErrorMessage&&(s.getErrorMessage=function(e){var n=e.err,r=e.args,o=e.p;return t.getErrorMessage(n,r,o)}),t.preReducer&&(s.preEffects=function(e){var n=e.s,r=e.p,o=e.args;return t.preReducer(n,o,r)}),t.optimisticReducer&&(s.optimisticEffects=function(e){var n=e.s,r=e.p,o=e.args;return t.optimisticReducer(n,o,r)}),t.reducer&&(s.effects=function(e){var n=e.s,r=e.res,o=e.p,i=e.args;return t.reducer(n,r,i,o)}),t.errorReducer&&(s.errorEffects=function(e){var n=e.s,r=e.err,o=e.p,i=e.args;return t.errorReducer(n,r,i,o)}),t.onDone&&(s.sideEffects=function(e){var n=e.s,r=e.res,o=e.p,i=e.args,s=e.a,u=e.notifyWarning;return t.onDone(n,r,i,o,s,u)}),t.onFail&&(s.errorSideEffects=function(e){var n=e.s,r=e.err,o=e.p,i=e.args,s=e.a,u=e.notifyWarning;return t.onFail(n,r,i,o,s,u)}),n[r]=s}return n}),{})}function v(o,i,u,a,f){void 0===a&&(a={});var l,p,g,v,y=n((function(e){return e>100?0:e+1}),0)[1],E=r(),h=r();null==E.current&&(E.current=d(i)),null==h.current&&(h.current=(l=a,p={},g=Object.keys(l),v=["onPropsChange","onPropsChangeReducer","getPropsRefValues","onMount","initialActionsMarkedLoading"],g.forEach((function(e){v.includes(e)||(p[e]=l[e])})),l.onMount&&(p.onMount=function(e){var n=e.s,r=e.p,t=e.a;return l.onMount(t,r,n)}),l.getPropsRefValues&&(p.onPropsChange={getDeps:l.getPropsRefValues,effects:function(e){var n=e.s,r=e.p,t=e.indices;return l.onPropsChangeReducer?l.onPropsChangeReducer(n,r,t):null},sideEffects:function(e){var n=e.s,r=e.p,t=e.a,o=e.indices;return null==l.onPropsChange?null:l.onPropsChange(n,r,t,o)}}),l.initialActionsMarkedLoading&&(p.initialActionsMarkedLoading=l.initialActionsMarkedLoading),p));var m=r();if(null==m.current){var O=f;a.logEnabled&&O.push(c()),m.current=e(s(s({getInitialState:o,actions:E.current},h.current),{middlewares:O}))}m.current.setProps(u),t((function(){return m.current.addStateListener((function(){y()}))}),[]);var P=m.current;return{state:P.state,actions:P.actions,loading:P.loading,loadingMap:P.loadingMap,loadingParallelMap:P.loadingParallelMap,abortAction:P.abortAction}}function y(e){o((function(){var n=e();return"function"==typeof n?n:void 0}),[e])}function E(e,n){void 0===n&&(n=[]),o((function(){return e}),[n,e])}function h(e){o((function(){return document.addEventListener("beforeunload",e),function(){document.removeEventListener("beforeunload",e)}}),[e])}"development"!==process.env.NODE_ENV&&"test"!==process.env.NODE_ENV||(c=function(e){return void 0===e&&(e=console),function(){var n="",r=e,t=function(e,n){var r;if(n!==e){var t=null!=e?typeof e:typeof n;if("number"===t||"string"===t||"boolean"===t)r="".concat(e," => ").concat(""===n?'""':n);else if(e&&e.length||n&&n.length)if(null==e)r="was ".concat(e,", now contains ").concat(n.length," element(s)");else if(null==n)r="contained ".concat(e.length," element(s), now is ").concat(n);else if(0===e.length)r="was empty, now contains ".concat(n.length," elements");else if(0===n.length)r="contained ".concat(e.length," elements, now is empty");else{var o=n.filter((function(n){return!e.find((function(e){return u(n,e)}))})),i=e.filter((function(e){return!n.find((function(n){return u(e,n)}))}));o.length>10&&(o="".concat(o.length," element(s) added")),i.length>10&&(i="".concat(i.length," element(s) removed")),r={added:o,removed:i}}else r=n}return r},o=function(e){return"string"==typeof e?'"'.concat(e,'"'):e};return{init:function(t){var i,s;n=(null===(i=t.options)||void 0===i?void 0:i.name)?"[".concat(null===(s=t.options)||void 0===s?void 0:s.name,"]"):"";var u=t.state;e.group(n,"initialState"),Object.keys(u).forEach((function(e){r.log(e,":",o(u[e]))})),e.groupEnd()},destroy:null,effects:function(e,i,s,u){var c,a=null===(c=e.context)||void 0===c?void 0:c.args,f=[n,e.name.toString()];if(e.isAsync&&("preEffects"===e.type?f.push(u?"START":"CANCELLED"):"effects"===e.type?f.push("DONE"):f.push("FAILED")),null!=s||a&&0!==Object.keys(a).length?r.group.apply(r,f):r.log.apply(r,f),a&&Object.keys(a).length>0&&(r.group("Arguments"),a.forEach((function(e){r.log(e,":",o(e))})),r.groupEnd()),null!=s){if(r.groupCollapsed("Before"),null==i)r.log("was null");else Object.keys(i).forEach((function(e){r.log(e,":",o(i[e]))}));if(r.groupEnd(),r.groupCollapsed("After"),null==s)r.log("was null");else Object.keys(s).forEach((function(e){r.log(e,":",o(s[e]))}));if(r.groupEnd(),null!=s){r.group("Diff");var l=function(e,n){var r={};return e&&Object.keys(e).forEach((function(o){if(n.hasOwnProperty(o)){var i=e[o],s=n[o],u=t(i,s);u&&(r[o]=u)}else r[o]="was deleted"})),Object.keys(n).forEach((function(o){if(null==e||!e.hasOwnProperty(o)){var i=n[o];r[o]=t(void 0,i)}})),r}(i,s);Object.keys(l).forEach((function(e){return r.log(e,":",l[e])})),r.groupEnd()}}return r.groupEnd(),null}}}});export{v as default,g as isAdvancedSyncAction,f as isAsyncAction,l as isAsyncPromiseGetAction,p as isSyncAction,y as useOnMount,h as useOnUnload,E as useOnUnmount};
//# sourceMappingURL=v5.js.map