UNPKG

stockroom

Version:

Offload your store management to a worker.

3 lines (2 loc) 1.84 kB
var e,t=(e=require("unistore"))&&"object"==typeof e&&"default"in e?e.default:e;function n(e,t){if(Array.isArray(e)){e=e.slice(0,t.length);for(var n=0;n<t.length;n++)void 0!==t[n]&&(e[n]=r(t[n],e[n]))}else for(var o in e=function(e,t){for(var n in t)e[n]=t[n];return e}({},e),t)t.hasOwnProperty(o)&&(void 0===t[o]?delete e[o]:e[o]=r(t[o],e[o]));return e}function r(e,t){return null!=t&&null!=e&&"object"==typeof t&&"object"==typeof e?n(t,e):e}function o(e,t){var n,r;if(Array.isArray(e))for(n=new Array(e.length),r=0;r<e.length;r++)e[r]!==t[r]&&(n[r]=i(e[r],t[r]));else for(r in n={},e)e.hasOwnProperty(r)&&e[r]!==t[r]&&(n[r]=i(e[r],t[r]));return n}function i(e,t){return"object"==typeof e&&"object"==typeof t?o(e,t):e}module.exports=function(e){var r=t(e),i=r.actions={},a={},f=0,u=[],s=[];for(var p in e)a[p]=e[p];function c(e){1===s.push(e)&&setTimeout(l)}function l(){"function"==typeof postMessage&&postMessage(s),s.length=0}function y(e){if(f>0)return u.push(e);var t=e.type,o=e.id,a=e.overwrite,s=e.update,p=e.action;if("@@STATE"===t)!0===e.partial&&(s=n(r.getState(),s),a=!0),r.setState(s,!0===a,p);else if("@@ACTION"===t){var l=i[p.type];p.params?l.apply(i,p.params):l.call(i,p.payload),o&&c({type:"@@ACTIONCOMPLETE",id:o})}}return"function"==typeof addEventListener&&addEventListener("message",function(e){var t=e.data;if("object"!=typeof t);else if("pop"in t)if(1===t.length)y(t[0]);else for(var n=0;n<t.length;n++)y(t[n]);else y(t)}),r.subscribe(function(e,t){var n=o(e,a);a=e,c({type:"@@STATE",update:n,action:t&&t.name,partial:!0})}),r.registerActions=function(e){for(var t in"function"==typeof e&&(e=e(r)),e)i[t]=r.action(e[t])},r.freeze=function(){f++},r.unfreeze=function(){if(!--f){var e=u;u=[];for(var t=0;t<e.length;t++)y(e[t])}},c({type:"@@STATE",initial:!0,update:r.getState()}),r}; //# sourceMappingURL=index.js.map