evx
Version:
Handy dandy persistent-state pub/sub with multi & wildcard subscriptions.
3 lines (2 loc) • 1.12 kB
JavaScript
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.evx={})}(this,function(t){var n=function(t){if("object"!=typeof(n=t)||Array.isArray(n))throw"state should be an object";var n},e=function(t,n,e,c){return(o=t,o.reduce(function(t,n,e){return t.indexOf(n)>-1?t:t.concat(n)},[])).reduce(function(t,e){return t.concat(n[e]||[])},[]).map(function(t){return t(e,c)});var o},c=u(),o=c.emit,r=c.hydrate,i=c.getState;function u(t){void 0===t&&(t={});var c={};return{getState:function(){return Object.assign({},t)},hydrate:function(o){return n(o),Object.assign(t,o),function(){var n=["*"].concat(Object.keys(o));e(n,c,t)}},on:function(t,n){return(t=[].concat(t)).map(function(t){return c[t]=(c[t]||[]).concat(n)}),function(){return t.map(function(t){return c[t].splice(c[t].indexOf(n),1)})}},emit:function(o,r,i){var u=("*"===o?[]:["*"]).concat(o);(r="function"==typeof r?r(t):r)&&(n(r),Object.assign(t,r),u=u.concat(Object.keys(r))),e(u,c,t,i)}}}t.on=c.on,t.emit=o,t.hydrate=r,t.getState=i,t.create=u});
//# sourceMappingURL=evx.umd.js.map