state-decorator
Version:
React state management library
3 lines (2 loc) • 7.83 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("./index"),r=require("react"),t=function(){return t=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},t.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"}(e||(e={}));var o=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,s;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=(s=Object.keys(n)).length)!==Object.keys(r).length)return!1;for(o=t;0!=o--;)if(!Object.prototype.hasOwnProperty.call(r,s[o]))return!1;for(o=t;0!=o--;){var i=s[o];if(!e(n[i],r[i]))return!1}return!0}return n!=n&&r!=r},s=null;function i(e){return!(e instanceof Function)&&e.hasOwnProperty("promiseGet")}function u(e){return e instanceof Function}function c(e){return!(e instanceof Function||e.hasOwnProperty("promise")||e.hasOwnProperty("promiseGet"))}function a(n){return Object.keys(n).reduce((function(r,t){var o=n[t];if(u(o))r[t]=function(e){return o(e.s,e.args,e.p)};else if(c(o)){var s={effects:function(e){return o.action(e.s,e.args,e.p)}};o.onActionDone&&(s.sideEffects=function(e){var n=e.s,r=e.p,t=e.args,s=e.a,i=e.notifyWarning;o.onActionDone(n,t,r,s,i)}),r[t]=s}else if(function(e){return!(e instanceof Function)&&e.hasOwnProperty("promise")}(o)||i(o)){var a;a=i(o)?{getPromise:function(e){var n=e.s,r=e.p,t=e.a,s=e.args,i=e.abortSignal;return o.promiseGet(s,n,r,t,i)},retryCount:3,conflictPolicy:e.REUSE}:{getPromise:function(e){var n=e.s,r=e.p,t=e.a,s=e.args,i=e.abortSignal;return o.promise(s,n,r,t,i)}},["abortable","conflictPolicy","getPromiseId","isTriggerRetryError","rejectPromiseOnError","retryCount","debounceTimeout","debounceSideEffectsTimeout","retryDelaySeed"].forEach((function(e){null!=o[e]&&(a[e]=o[e])})),o.successMessage&&(a.getSuccessMessage=function(){return o.successMessage}),o.errorMessage&&(a.getSuccessMessage=function(){return o.errorMessage}),o.getSuccessMessage&&(a.getSuccessMessage=function(e){var n=e.res,r=e.args,t=e.p;return o.getSuccessMessage(n,r,t)}),o.getErrorMessage&&(a.getErrorMessage=function(e){var n=e.err,r=e.args,t=e.p;return o.getErrorMessage(n,r,t)}),o.preReducer&&(a.preEffects=function(e){var n=e.s,r=e.p,t=e.args;return o.preReducer(n,t,r)}),o.optimisticReducer&&(a.optimisticEffects=function(e){var n=e.s,r=e.p,t=e.args;return o.optimisticReducer(n,t,r)}),o.reducer&&(a.effects=function(e){var n=e.s,r=e.res,t=e.p,s=e.args;return o.reducer(n,r,s,t)}),o.errorReducer&&(a.errorEffects=function(e){var n=e.s,r=e.err,t=e.p,s=e.args;return o.errorReducer(n,r,s,t)}),o.onDone&&(a.sideEffects=function(e){var n=e.s,r=e.res,t=e.p,s=e.args,i=e.a,u=e.notifyWarning;return o.onDone(n,r,s,t,i,u)}),o.onFail&&(a.errorSideEffects=function(e){var n=e.s,r=e.err,t=e.p,s=e.args,i=e.a,u=e.notifyWarning;return o.onFail(n,r,s,t,i,u)}),r[t]=a}return r}),{})}"development"!==process.env.NODE_ENV&&"test"!==process.env.NODE_ENV||(s=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 s=n.filter((function(n){return!e.find((function(e){return o(n,e)}))})),i=e.filter((function(e){return!n.find((function(n){return o(e,n)}))}));s.length>10&&(s="".concat(s.length," element(s) added")),i.length>10&&(i="".concat(i.length," element(s) removed")),r={added:s,removed:i}}else r=n}return r},s=function(e){return"string"==typeof e?'"'.concat(e,'"'):e};return{init:function(t){var o,i;n=(null===(o=t.options)||void 0===o?void 0:o.name)?"[".concat(null===(i=t.options)||void 0===i?void 0:i.name,"]"):"";var u=t.state;e.group(n,"initialState"),Object.keys(u).forEach((function(e){r.log(e,":",s(u[e]))})),e.groupEnd()},destroy:null,effects:function(e,o,i,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!=i||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,":",s(e))})),r.groupEnd()),null!=i){if(r.groupCollapsed("Before"),null==o)r.log("was null");else Object.keys(o).forEach((function(e){r.log(e,":",s(o[e]))}));if(r.groupEnd(),r.groupCollapsed("After"),null==i)r.log("was null");else Object.keys(i).forEach((function(e){r.log(e,":",s(i[e]))}));if(r.groupEnd(),null!=i){r.group("Diff");var l=function(e,n){var r={};return e&&Object.keys(e).forEach((function(o){if(n.hasOwnProperty(o)){var s=e[o],i=n[o],u=t(s,i);u&&(r[o]=u)}else r[o]="was deleted"})),Object.keys(n).forEach((function(o){if(null==e||!e.hasOwnProperty(o)){var s=n[o];r[o]=t(void 0,s)}})),r}(o,i);Object.keys(l).forEach((function(e){return r.log(e,":",l[e])})),r.groupEnd()}}return r.groupEnd(),null}}}}),exports.default=function(e,o,i,u,c){void 0===u&&(u={});var f,l,p,g,d=r.useReducer((function(e){return e>100?0:e+1}),0)[1],v=r.useRef(),y=r.useRef();null==v.current&&(v.current=a(o)),null==y.current&&(y.current=(f=u,l={},p=Object.keys(f),g=["onPropsChange","onPropsChangeReducer","getPropsRefValues","onMount","initialActionsMarkedLoading"],p.forEach((function(e){g.includes(e)||(l[e]=f[e])})),f.onMount&&(l.onMount=function(e){var n=e.s,r=e.p,t=e.a;return f.onMount(t,r,n)}),f.getPropsRefValues&&(l.onPropsChange={getDeps:f.getPropsRefValues,effects:function(e){var n=e.s,r=e.p,t=e.indices;return f.onPropsChangeReducer?f.onPropsChangeReducer(n,r,t):null},sideEffects:function(e){var n=e.s,r=e.p,t=e.a,o=e.indices;return null==f.onPropsChange?null:f.onPropsChange(n,r,t,o)}}),f.initialActionsMarkedLoading&&(l.initialActionsMarkedLoading=f.initialActionsMarkedLoading),l));var E=r.useRef();if(null==E.current){var h=c;u.logEnabled&&h.push(s()),E.current=n.createStore(t(t({getInitialState:e,actions:v.current},y.current),{middlewares:h}))}E.current.setProps(i),r.useLayoutEffect((function(){return E.current.addStateListener((function(){d()}))}),[]);var O=E.current;return{state:O.state,actions:O.actions,loading:O.loading,loadingMap:O.loadingMap,loadingParallelMap:O.loadingParallelMap,abortAction:O.abortAction}},exports.isAdvancedSyncAction=c,exports.isAsyncAction=function(e){return!(e instanceof Function)&&(e.hasOwnProperty("promise")||e.hasOwnProperty("promiseGet"))},exports.isAsyncPromiseGetAction=function(e){return!(e instanceof Function||e.hasOwnProperty("promise")&&e.hasOwnProperty("promiseGet"))},exports.isSyncAction=u,exports.useOnMount=function(e){r.useEffect((function(){var n=e();return"function"==typeof n?n:void 0}),[e])},exports.useOnUnload=function(e){r.useEffect((function(){return document.addEventListener("beforeunload",e),function(){document.removeEventListener("beforeunload",e)}}),[e])},exports.useOnUnmount=function(e,n){void 0===n&&(n=[]),r.useEffect((function(){return e}),[n,e])};
//# sourceMappingURL=v5.js.map