UNPKG

pinia

Version:

Intuitive, type safe and flexible Store for Vue

8 lines • 5.56 kB
/*! * pinia v4.1.0 * (c) 2026 Eduardo San Martin Morote * @license MIT */ var Pinia=(function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let n,r=e=>n=e,i=()=>(0,t.hasInjectionContext)()&&(0,t.inject)(o)||n;function a(e){return Array.from(e._s.values())}let o=Symbol();function s(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}let c=function(e){return e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`,e}({});function l(){let e=(0,t.effectScope)(!0),n=e.run(()=>(0,t.ref)({})),i=[],a=[],s=(0,t.markRaw)({install(e){r(s),s._a=e,e.provide(o,s),e.config.globalProperties.$pinia=s,a.forEach(e=>i.push(e)),a=[]},use(e){return this._a?i.push(e):a.push(e),this},_p:i,_a:null,_e:e,_s:new Map,state:n});return s}function u(e){e._e.stop(),e._s.clear(),e._p.splice(0),e.state.value={},e._a=null}function d(e,t){return()=>{}}let f=()=>{};function p(e,n,r,i=f){e.add(n);let a=()=>{e.delete(n)&&i()};return!r&&(0,t.getCurrentScope)()&&(0,t.onScopeDispose)(a),a}function m(e,...t){e.forEach(e=>{e(...t)})}let h=e=>e(),g=Symbol(),_=Symbol();function v(e,n){e instanceof Map&&n instanceof Map?n.forEach((t,n)=>e.set(n,t)):e instanceof Set&&n instanceof Set&&n.forEach(e.add,e);for(let r in n){if(!Object.hasOwn(n,r))continue;let i=n[r],a=e[r];if(s(a)&&s(i)&&Object.hasOwn(e,r)&&!(0,t.isRef)(i)&&!(0,t.isReactive)(i)){e[r]=v(a,i);let n=(0,t.toRaw)(e)[r];(0,t.isRef)(n)&&(0,t.isShallow)(n)&&(0,t.triggerRef)(n)}else e[r]=i}return e}let y=Symbol();function b(e){return Object.defineProperty(e,y,{})}function x(e){return!e||typeof e!=`object`||!Object.hasOwn(e,y)}let{assign:S}=Object;function C(e){return!!((0,t.isRef)(e)&&e.effect)}function w(e,n,i,a){let{state:o,actions:s,getters:c}=n,l=i.state.value[e],u;function d(){l||(i.state.value[e]=o?o():{});let n=(0,t.toRefs)(i.state.value[e]);return S(n,s,Object.keys(c||{}).reduce((n,a)=>(n[a]=(0,t.markRaw)((0,t.computed)(()=>{r(i);let t=i._s.get(e);return c[a].call(t,t)})),n),{}))}return u=T(e,d,n,i,a,!0),u}function T(e,n,i={},a,o,s){let c,l=S({actions:{}},i),u={deep:!0},d,y,b=new Set,w=new Set,T,E=a.state.value[e];!s&&!E&&(a.state.value[e]={});let D;function O(n){let r;d=y=!1,typeof n==`function`?(n(a.state.value[e]),r={type:`patch function`,storeId:e,events:T}):(v(a.state.value[e],n),r={type:`patch object`,payload:n,storeId:e,events:T});let i=D=Symbol();(0,t.nextTick)().then(()=>{D===i&&(d=!0)}),y=!0,m(b,r,a.state.value[e])}let k=s?function(){let{state:e}=i,t=e?e():{};this.$patch(e=>{S(e,t)})}:f;function A(){c.stop(),b.clear(),w.clear(),a._s.delete(e)}let j=(t,n=``)=>{if(g in t)return t[_]=n,t;let i=function(){r(a);let n=Array.from(arguments),o=new Set,s=new Set;function c(e){o.add(e)}function l(e){s.add(e)}m(w,{args:n,name:i[_],store:N,after:c,onError:l});let u;try{u=t.apply(this&&this.$id===e?this:N,n)}catch(e){throw m(s,e),e}return u instanceof Promise?u.then(e=>(m(o,e),e)).catch(e=>(m(s,e),Promise.reject(e))):(m(o,u),u)};return i[g]=!0,i[_]=n,i},M={_p:a,$id:e,$onAction:p.bind(null,w),$patch:O,$reset:k,$subscribe(n,r={}){if(b.has(n))return f;let i=p(b,n,r.detached,()=>o()),o=c.run(()=>(0,t.watch)(()=>a.state.value[e],t=>{(r.flush===`sync`?y:d)&&n({storeId:e,type:`direct`,events:T},t)},S({},u,r)));return i},$dispose:A},N=(0,t.reactive)(M);a._s.set(e,N);let P=(a._a&&a._a.runWithContext||h)(()=>a._e.run(()=>(c=(0,t.effectScope)()).run(()=>n({action:j}))));for(let n in P){let r=P[n];(0,t.isRef)(r)&&!C(r)||(0,t.isReactive)(r)?s||(E&&x(r)&&((0,t.isRef)(r)?r.value=E[n]:((r instanceof Set||r instanceof Map)&&r.clear(),v(r,E[n]))),a.state.value[e][n]=r):typeof r==`function`&&(P[n]=j(r,n),l.actions[n]=r)}return S(N,P),S((0,t.toRaw)(N),P),Object.defineProperty(N,"$state",{get:()=>a.state.value[e],set:e=>{O(t=>{S(t,e)})}}),a._p.forEach(e=>{let t=c.run(()=>e({store:N,app:a._a,pinia:a,options:l}));S(N,t)}),E&&s&&i.hydrate&&i.hydrate(N.$state,E),d=!0,y=!0,N} /*! #__NO_SIDE_EFFECTS__ */ function E(e,i,a){let s,c=typeof i==`function`;s=c?a:i;function l(a,l){let u=(0,t.hasInjectionContext)();return a=a||(u?(0,t.inject)(o,null):null),a&&r(a),a=n,a._s.has(e)||(c?T(e,i,s,a):w(e,s,a)),a._s.get(e)}return l.$id=e,l}let D=`Store`;function O(e){D=e}function k(...e){return e.reduce((e,t)=>(e[t.$id+D]=function(){return t(this.$pinia)},e),{})}function A(e,t){return Array.isArray(t)?t.reduce((t,n)=>(t[n]=function(){return e(this.$pinia)[n]},t),{}):Object.keys(t).reduce((n,r)=>(n[r]=function(){let n=e(this.$pinia),i=t[r];return typeof i==`function`?i.call(this,n):n[i]},n),{})}let j=A;function M(e,t){return Array.isArray(t)?t.reduce((t,n)=>(t[n]=function(...t){return e(this.$pinia)[n](...t)},t),{}):Object.keys(t).reduce((n,r)=>(n[r]=function(...n){return e(this.$pinia)[t[r]](...n)},n),{})}function N(e,t){return Array.isArray(t)?t.reduce((t,n)=>(t[n]={get(){return e(this.$pinia)[n]},set(t){return e(this.$pinia)[n]=t}},t),{}):Object.keys(t).reduce((n,r)=>(n[r]={get(){return e(this.$pinia)[t[r]]},set(n){return e(this.$pinia)[t[r]]=n}},n),{})}function P(e){let n=(0,t.toRaw)(e),r={};for(let i in n){let a=n[i];a!=null&&a.effect?r[i]=(0,t.computed)({get:()=>e[i],set(t){e[i]=t}}):((0,t.isRef)(a)||(0,t.isReactive)(a))&&(r[i]=(0,t.toRef)(e,i))}return r}return e.MutationType=c,e.acceptHMRUpdate=d,e.createPinia=l,e.defineStore=E,e.disposePinia=u,e.getActivePinia=i,e.getStores=a,e.mapActions=M,e.mapGetters=j,e.mapState=A,e.mapStores=k,e.mapWritableState=N,e.piniaSymbol=o,e.setActivePinia=r,e.setMapStoreSuffix=O,e.shouldHydrate=x,e.skipHydrate=b,e.storeToRefs=P,e})({},Vue);