UNPKG

zerotwo

Version:

Refined state containter for Vue.js

3 lines (2 loc) 2.92 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],e):e(t.zerotwo={},t.Vue)}(this,function(t,e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var n=function(t){for(var e=arguments,n=1;n<arguments.length;n++)for(var i in arguments[n])t[i]=e[n][i];return t},i="undefined"!=typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;var r=function(t,e){return"object"==typeof t?t:{type:t,payload:e}};var o=function(t,e){return void 0===t&&(t={}),e?{functional:!0,name:"connect-"+(e.name||"unknown"),props:e.props,render:function(i,r){var o=r.parent.$store,a=n({},r.props,function(t,e){return Object.keys(e).reduce(function(n,i){var r,o=e[i],a=o.name||i;return"STATE"===o.type?r=t.state[a]:"MUTATION"===o.type?r=function(e){return t.commit(a,e)}:"ACTION"===o.type?r=function(e){return t.dispatch(a,e)}:"GETTER"===o.type&&(r="function"==typeof a?function(){return a(t.state,t.getters)}:t.getters[a]),n[a]=r,n},{})}(o,t));return i(e,{data:r.data,on:r.listeners,props:a},r.children)}}:function(e){return o(t,e)}};t.default=function(t){t.mixin({beforeCreate:function(){var t=this.$options.store||this.$parent&&this.$parent.$store;t&&(this.$store=t)}})},t.createStore=function(t){var n=t.state,o=t.mutations,a=t.getters,u=t.actions,s=t.plugins,c=a&&Object.keys(a),f={};if(c)for(var p=function(){var t=d[m];f[t]=function(){return a[t](this._data.$$state,f)}},m=0,d=c;m<d.length;m+=1)p();var v=e.config.silent;e.config.silent=!0;var h=new e({data:{$$state:n},computed:f});e.config.silent=v;var l=[],y={vm:h,committing:!1,getters:{},get state(){return h._data.$$state},set state(t){},commit:function(t,e){var n=r(t,e),i=o[n.type];this.withCommit(function(){return i(h._data.$$state,n.payload)});for(var a=0,u=l;a<u.length;a+=1)(0,u[a])(n,this.state)},dispatch:function(t,e){var n=r(t,e),i=u[n.type];return Promise.resolve(i({commit:this.commit.bind(this),dispatch:this.dispatch.bind(this),state:this.state},n.payload))},subscribe:function(t){l.push(t)},replaceState:function(t){this.withCommit(function(){h._data.$$state=t})},withCommit:function(t){var e=this.committing;this.committing=!0,t(),this.committing=e}};if(c)for(var g=function(){var t=T[$];Object.defineProperty(y.getters,t,{get:function(){return h[t]},enumerable:!0})},$=0,T=c;$<T.length;$+=1)g();if(e.config.devtools&&function(t){i&&(t._devtoolHook=i,i.emit("vuex:init",t),i.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){i.emit("vuex:mutation",t,e)}))}(y),s)for(var b=0,O=s;b<O.length;b+=1)(0,O[b])(y);return y},t.connect=o,t.state=function(t){return{type:"STATE",name:t}},t.mutation=function(t){return{type:"MUTATION",name:t}},t.action=function(t){return{type:"ACTION",name:t}},t.getter=function(t){return{type:"GETTER",name:t}},Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=zerotwo.min.js.map