stockroom
Version:
Offload your store management to a worker.
3 lines (2 loc) • 2.02 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.stockroom=e()}(this,function(){function t(t,e){for(var n in e)t[n]=e[n];return t}function e(e,r){if(Array.isArray(e)){e=e.slice(0,r.length);for(var o=0;o<r.length;o++)void 0!==r[o]&&(e[o]=n(r[o],e[o]))}else for(var i in e=t({},e),r)r.hasOwnProperty(i)&&(void 0===r[i]?delete e[i]:e[i]=n(r[i],e[i]));return e}function n(t,n){return null!=n&&null!=t&&"object"==typeof n&&"object"==typeof t?e(n,t):t}function r(t,e){var n,r;if(Array.isArray(t))for(n=new Array(t.length),r=0;r<t.length;r++)t[r]!==e[r]&&(n[r]=o(t[r],e[r]));else for(r in n={},t)t.hasOwnProperty(r)&&t[r]!==e[r]&&(n[r]=o(t[r],e[r]));return n}function o(t,e){return"object"==typeof t&&"object"==typeof e?r(t,e):t}var i=function(t){return!(t instanceof Event)};return function(n){var o=[],f={},u=[],a=!1;function c(t){var n=t.overwrite,r=t.update,o=t.action,i=t.initial;"@@STATE"===t.type&&(!0===t.partial&&(r=e(f,r),n=!0),p(r,!0===n,o,!1),i&&(a=!0,l()))}function p(e,n,i,u){var a=f;f=t(n?{}:t({},f),e),u&&s({type:"@@STATE",overwrite:n,update:n?f:r(f,a),action:i,partial:!n});for(var c=o,p=0;p<c.length;p++)c[p](f,i)}function s(t){1===u.push(t)&&setTimeout(l)}function l(){a&&u.length>0&&(n.postMessage(u),u.length=0)}function y(t){for(var e=[],n=0;n<o.length;n++)o[n]===t?t=null:e.push(o[n]);o=e}return n.addEventListener("message",function(t){var e=t.data;if("object"!=typeof e);else if("pop"in e)if(1===e.length)c(e[0]);else for(var n=0;n<e.length;n++)c(e[n]);else c(e)}),{action:function(t){return function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r="function"==typeof t?t.apply(void 0,e):t;"string"==typeof r&&(r={type:r,params:e.filter(i)}),r&&!r.type?p(r,!1,t.name,!0):s({type:"@@ACTION",action:r})}},setState:function(t,e,n){return p(t,e,n,!0)},getState:function(){return f},subscribe:function(t){return o.push(t),function(){y(t)}},unsubscribe:y}}});
//# sourceMappingURL=stockroom.umd.js.map