UNPKG

stockroom

Version:

Offload your store management to a worker.

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