stockroom
Version:
Offload your store management to a worker.
3 lines (2 loc) • 1.86 kB
JavaScript
function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}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(e){function t(e){1===l.push(e)&&setTimeout(r)}function r(){"function"==typeof postMessage&&postMessage(l),l.length=0}function i(e){if(p>0)return c.push(e);var r=e.type,o=e.id,i=e.overwrite,f=e.partial,s=e.update,l=e.action;if("@@STATE"===r)!0===f&&(s=n(a.getState(),s),i=!0),a.setState(s,!0===i,l);else if("@@ACTION"===r){var y=u[l.type];l.params?y.apply(u,l.params):y.call(u,l.payload),o&&t({type:"@@ACTIONCOMPLETE",id:o})}}var a=f(e),u=a.actions={},s={},p=0,c=[],l=[];for(var y in e)s[y]=e[y];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)i(t[0]);else for(var n=0;n<t.length;n++)i(t[n]);else i(t)}),a.subscribe(function(e,n){var r=o(e,s);s=e,t({type:"@@STATE",update:r,action:n,partial:!0})}),a.registerActions=function(e){"function"==typeof e&&(e=e(a));for(var t in e)u[t]=a.action(e[t])},a.freeze=function(){p++},a.unfreeze=function(){if(!--p){var e=c;c=[];for(var t=0;t<e.length;t++)i(e[t])}},t({type:"@@STATE",initial:!0,update:a.getState()}),a}var f=e(require("unistore"));module.exports=a;
//# sourceMappingURL=index.js.map