UNPKG

stockroom

Version:

Offload your store management to a worker.

3 lines (2 loc) • 1.79 kB
import e from"unistore";function t(e,t){for(var n in t)e[n]=t[n];return e}function n(e,n){if(Array.isArray(e)){e=e.slice(0,n.length);for(var o=0;o<n.length;o++)void 0!==n[o]&&(e[o]=r(n[o],e[o]))}else{e=t({},e);for(var i in n)n.hasOwnProperty(i)&&(void 0===n[i]?delete e[i]:e[i]=r(n[i],e[i]))}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{n={};for(r in 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}function a(t){var r=e(t),i=r.actions={},a={},f=0,u=[],p=[];for(var s in t)a[s]=t[s];function c(e){1===p.push(e)&&setTimeout(l)}function l(){"function"==typeof postMessage&&postMessage(p),p.length=0}function y(e){if(f>0)return u.push(e);var t=e.type,o=e.id,a=e.overwrite,p=e.partial,s=e.update,l=e.action;if("@@STATE"===t)!0===p&&(s=n(r.getState(),s),a=!0),r.setState(s,!0===a,l);else if("@@ACTION"===t){var y=i[l.type];l.params?y.apply(i,l.params):y.call(i,l.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,partial:!0})}),r.registerActions=function(e){"function"==typeof e&&(e=e(r));for(var t in 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}export default a; //# sourceMappingURL=index.es.js.map