pinia
Version:
Intuitive, type safe and flexible Store for Vue
8 lines • 5.36 kB
JavaScript
/*!
* pinia v4.0.2
* (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)(a)||n,a=Symbol();function o(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}let s=function(e){return e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`,e}({});function c(){let e=(0,t.effectScope)(!0),n=e.run(()=>(0,t.ref)({})),i=[],o=[],s=(0,t.markRaw)({install(e){r(s),s._a=e,e.provide(a,s),e.config.globalProperties.$pinia=s,o.forEach(e=>i.push(e)),o=[]},use(e){return this._a?i.push(e):o.push(e),this},_p:i,_a:null,_e:e,_s:new Map,state:n});return s}function l(e){e._e.stop(),e._s.clear(),e._p.splice(0),e.state.value={},e._a=null}function u(e,t){return()=>{}}let d=()=>{};function f(e,n,r,i=d){e.add(n);let a=()=>{e.delete(n)&&i()};return!r&&(0,t.getCurrentScope)()&&(0,t.onScopeDispose)(a),a}function p(e,...t){e.forEach(e=>{e(...t)})}let m=e=>e(),h=Symbol(),g=Symbol();function _(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];o(a)&&o(i)&&Object.hasOwn(e,r)&&!(0,t.isRef)(i)&&!(0,t.isReactive)(i)?e[r]=_(a,i):e[r]=i}return e}let v=Symbol();function y(e){return Object.defineProperty(e,v,{})}function b(e){return!e||typeof e!=`object`||!Object.hasOwn(e,v)}let{assign:x}=Object;function S(e){return!!((0,t.isRef)(e)&&e.effect)}function C(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 x(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=w(e,d,n,i,a,!0),u}function w(e,n,i={},a,o,s){let c,l=x({actions:{}},i),u={deep:!0},v,y,C=new Set,w=new Set,T=a.state.value[e];!s&&!T&&(a.state.value[e]={});let E;function D(n){let r;v=y=!1,typeof n==`function`?(n(a.state.value[e]),r={type:`patch function`,storeId:e,events:void 0}):(_(a.state.value[e],n),r={type:`patch object`,payload:n,storeId:e,events:void 0});let i=E=Symbol();(0,t.nextTick)().then(()=>{E===i&&(v=!0)}),y=!0,p(C,r,a.state.value[e])}let O=s?function(){let{state:e}=i,t=e?e():{};this.$patch(e=>{x(e,t)})}:d;function k(){c.stop(),C.clear(),w.clear(),a._s.delete(e)}let A=(t,n=``)=>{if(h in t)return t[g]=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)}p(w,{args:n,name:i[g],store:j,after:c,onError:l});let u;try{u=t.apply(this&&this.$id===e?this:j,n)}catch(e){throw p(s,e),e}return u instanceof Promise?u.then(e=>(p(o,e),e)).catch(e=>(p(s,e),Promise.reject(e))):(p(o,u),u)};return i[h]=!0,i[g]=n,i},j=(0,t.reactive)({_p:a,$id:e,$onAction:f.bind(null,w),$patch:D,$reset:O,$subscribe(n,r={}){if(C.has(n))return d;let i=f(C,n,r.detached,()=>o()),o=c.run(()=>(0,t.watch)(()=>a.state.value[e],t=>{(r.flush===`sync`?y:v)&&n({storeId:e,type:`direct`,events:void 0},t)},x({},u,r)));return i},$dispose:k});a._s.set(e,j);let M=(a._a&&a._a.runWithContext||m)(()=>a._e.run(()=>(c=(0,t.effectScope)()).run(()=>n({action:A}))));for(let n in M){let r=M[n];(0,t.isRef)(r)&&!S(r)||(0,t.isReactive)(r)?s||(T&&b(r)&&((0,t.isRef)(r)?r.value=T[n]:_(r,T[n])),a.state.value[e][n]=r):typeof r==`function`&&(M[n]=A(r,n),l.actions[n]=r)}return x(j,M),x((0,t.toRaw)(j),M),Object.defineProperty(j,"$state",{get:()=>a.state.value[e],set:e=>{D(t=>{x(t,e)})}}),a._p.forEach(e=>{let t=c.run(()=>e({store:j,app:a._a,pinia:a,options:l}));x(j,t)}),T&&s&&i.hydrate&&i.hydrate(j.$state,T),v=!0,y=!0,j}
/*! #__NO_SIDE_EFFECTS__ */
function T(e,i,o){let s,c=typeof i==`function`;s=c?o:i;function l(o,l){let u=(0,t.hasInjectionContext)();return o=o||(u?(0,t.inject)(a,null):null),o&&r(o),o=n,o._s.has(e)||(c?w(e,i,s,o):C(e,s,o)),o._s.get(e)}return l.$id=e,l}let E=`Store`;function D(e){E=e}function O(...e){return e.reduce((e,t)=>(e[t.$id+E]=function(){return t(this.$pinia)},e),{})}function k(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 A=k;function j(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 M(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 N(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=s,e.acceptHMRUpdate=u,e.createPinia=c,e.defineStore=T,e.disposePinia=l,e.getActivePinia=i,e.mapActions=j,e.mapGetters=A,e.mapState=k,e.mapStores=O,e.mapWritableState=M,e.piniaSymbol=a,e.setActivePinia=r,e.setMapStoreSuffix=D,e.shouldHydrate=b,e.skipHydrate=y,e.storeToRefs=N,e})({},Vue);