UNPKG

evx

Version:

Handy dandy persistent-state pub/sub with multi & wildcard subscriptions.

3 lines (2 loc) 968 B
var n=function(n){if("object"!=typeof(t=n)||Array.isArray(t))throw"state should be an object";var t},t=function(n,t,e,c){return(r=n,r.reduce(function(n,t,e){return n.indexOf(t)>-1?n:n.concat(t)},[])).reduce(function(n,e){return n.concat(t[e]||[])},[]).map(function(n){return n(e,c)});var r},e=a(),c=e.on,r=e.emit,o=e.hydrate,u=e.getState;function a(e){void 0===e&&(e={});var c={};return{getState:function(){return Object.assign({},e)},hydrate:function(r){return n(r),Object.assign(e,r),function(){var n=["*"].concat(Object.keys(r));t(n,c,e)}},on:function(n,t){return(n=[].concat(n)).map(function(n){return c[n]=(c[n]||[]).concat(t)}),function(){return n.map(function(n){return c[n].splice(c[n].indexOf(t),1)})}},emit:function(r,o,u){var a=("*"===r?[]:["*"]).concat(r);(o="function"==typeof o?o(e):o)&&(n(o),Object.assign(e,o),a=a.concat(Object.keys(o))),t(a,c,e,u)}}}export{c as on,r as emit,o as hydrate,u as getState,a as create}; //# sourceMappingURL=evx.es.js.map