puex
Version:
1kb Vuex alternative.
3 lines (2 loc) • 2.7 kB
JavaScript
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],i):i(t.puex={},t.Vue)}(this,function(t,i){"use strict";function e(t){return Array.isArray(t)?t.map(function(t){return{k:t,v:t}}):Object.keys(t).map(function(i){return{k:i,v:t[i]}})}function n(t,i){return"function"==typeof i?i:t[i]}i=i&&i.hasOwnProperty("default")?i.default:i;var s=function(t){return function(i){for(var n={},s=function(){var i=r[o],e=i.k,s=i.v;n[e]=function(){var i=t||this.$store;return"function"==typeof s?s.call(this,i.state):i.state[s]}},o=0,r=e(i);o<r.length;o+=1)s();return n}},o=function(t,i,n){return function(s){for(var o={},r=function(){var e=a[u],s=e.k,r=e.v;o[s]=function(e){var s=n||this.$store,o=s[t],u=s[i],a="function"==typeof r?r.call(this,o):r;return u.call(s,a,e)}},u=0,a=e(s);u<a.length;u+=1)r();return o}},r="undefined"!=typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;var u=function(t){var e=this;void 0===t&&(t={});var n=t.state,u=t.mutations;void 0===u&&(u={});var a=t.actions;void 0===a&&(a={});var c,f=t.plugins,p=t.subscribers;void 0===p&&(p=[]),this.vm=new i({data:{$$state:"function"==typeof n?n():n}}),this.mutations=u,this.actions=a,this.subscribers=p,f&&f.forEach(function(t){return e.use(t)}),i.config.devtools&&(this.getters=[],c=this,r&&(c._devtoolHook=r,r.emit("vuex:init",c),r.on("vuex:travel-to-state",function(t){c.replaceState(t)}),c.subscribe(function(t,i){r.emit("vuex:mutation",t,i)}))),this.mapState=s(this),this.mapActions=o("actions","dispatch",this),this.mapMutations=o("mutations","commit",this)},a={state:{configurable:!0}};u.install=function(t){t.mixin({beforeCreate:function(){this.$store=this.$options.store||this.$parent&&this.$parent.$store}})},a.state.get=function(){return this.vm.$data.$$state},a.state.set=function(t){},u.prototype.subscribe=function(t){var i=this;return this.subscribers.push(t),function(){return i.subscribers.splice(i.subscribers.indexOf(t),1)}},u.prototype.commit=function(t,i){var e=n(this.mutations,t);e&&e(this.state,i);for(var s=0,o=this.subscribers;s<o.length;s+=1){(0,o[s])({type:t,payload:i},this.state)}},u.prototype.dispatch=function(t,i){var e=n(this.actions,t),s={dispatch:this.dispatch.bind(this),commit:this.commit.bind(this)};return Promise.resolve(e&&e(s,i))},u.prototype.use=function(t){return t(this),this},u.prototype.replaceState=function(t){return this.vm.$data.$$state=t,this},Object.defineProperties(u.prototype,a);var c=s(),f=o("actions","dispatch"),p=o("mutations","commit");t.default=u,t.mapState=c,t.mapActions=f,t.mapMutations=p,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=puex.min.js.map