pinia-plugin-data
Advanced tools
+1
-1
@@ -1,1 +0,1 @@ | ||
| import"pinia";import{shallowRef as e}from"vue";class t{key;storage;serializer;constructor(e,t,s){this.key=e,this.storage=t,this.serializer=s}beforeRestore(){}afterRestore(){}}const s=e(window.localStorage);class r{getItem(e){return s.value.getItem(e)}setItem(e,t){s.value.setItem(e,t)}removeItem(e){s.value.removeItem(e)}}class i{deserialize(e){return JSON.parse(e)}serialize(e){return JSON.stringify(e)}}class o{state;slave;values=[];constructor(e){this.slave=e,this.state="onWaiting"}trigger(e){if(e.center)e.dispatch().then((()=>{const t=e.onExpire();t||void 0===t?(this.state="onReject",this.values.forEach((({reset:e})=>e()))):(this.state="onResolve",this.values.forEach((({dispatch:e})=>e())))})),this.values.length=0;else if("onResolve"===this.state)e.dispatch();else if("onWaiting"===this.state)this.values.push({dispatch:e.dispatch,reset:e.reset});else{if("onReject"!==this.state)throw new Error(`未知的${this.state}状态`);e.reset()}}}const a=new Map,n=()=>{};function c(e,t){try{const s=e.serializer,r=e.key,i=e.storage,n=s.serialize(r),c=i.getItem(n);if(null===c)return;const l=s.deserialize(c),h=async()=>(await Promise.resolve(e.beforeRestore(t)),await Promise.resolve(t.store.$patch(l)),await Promise.resolve(e.afterRestore(t))),u=()=>{const e=t.options.state?.();e&&t.store.$patch(e),i.removeItem(n)};"slave"in e?function(e){const t=a.get(e);if(t)return t;{const t=new o(e);return a.set(e,t),t}}(e.slave).trigger({dispatch:h,center:e.center,reset:u,onExpire:()=>e.onExpire(t.store)}):h()}catch(e){throw e}}function l(e,s){const o=function(e,s){if("boolean"==typeof s)return new t(e.store.$id,new r,new i);{const t=s;return{key:t.key??e.store.$id,afterRestore:t.afterRestore??n,beforeRestore:t.beforeRestore??n,serializer:t.serializer??new i,storage:t.storage??new r,slave:t.slave??void 0,center:t.center??!1,onExpire:t.onExpire??n}}}(e,s);c(o,e),e.store.$subscribe(((e,t)=>{const s=o.serializer,r=o.key;o.storage.setItem(s.serialize(r),s.serialize(t))}),{deep:!0,detached:!0})}function h(e){e.options.persistence&&l(e,e.options.persistence)}export{h as default}; | ||
| import"pinia";import{shallowRef as e}from"vue";class t{key;storage;serializer;constructor(e,t,s){this.key=e,this.storage=t,this.serializer=s}beforeRestore(){}afterRestore(){}}const s=e(window.localStorage);class r{getItem(e){return s.value.getItem(e)}setItem(e,t){s.value.setItem(e,t)}removeItem(e){s.value.removeItem(e)}}class i{deserialize(e){return JSON.parse(e)}serialize(e){return JSON.stringify(e)}}class o{state;slave;values=[];constructor(e){this.slave=e,this.state="onWaiting"}trigger(e){if(e.center)e.dispatch().then((()=>{Promise.resolve(e.onExpire()).then((e=>{e||void 0===e?(this.state="onReject",this.values.forEach((({reset:e})=>e()))):(this.state="onResolve",this.values.forEach((({dispatch:e})=>e()))),this.values.length=0}))}));else if("onResolve"===this.state)e.dispatch();else if("onWaiting"===this.state)this.values.push({dispatch:e.dispatch,reset:e.reset});else{if("onReject"!==this.state)throw new Error(`未知的${this.state}状态`);e.reset()}}}const a=new Map,n=()=>{};function c(e,t){try{const s=e.serializer,r=e.key,i=e.storage,n=s.serialize(r),c=i.getItem(n);if(null===c)return;const l=s.deserialize(c),h=async()=>(await Promise.resolve(e.beforeRestore(t)),await Promise.resolve(t.store.$patch(l)),await Promise.resolve(e.afterRestore(t))),u=()=>{const e=t.options.state?.();e&&t.store.$patch(e),i.removeItem(n)};"slave"in e?function(e){const t=a.get(e);if(t)return t;{const t=new o(e);return a.set(e,t),t}}(e.slave).trigger({dispatch:h,center:e.center,reset:u,onExpire:()=>e.onExpire(t.store)}):h()}catch(e){throw e}}function l(e,s){const o=function(e,s){if("boolean"==typeof s)return new t(e.store.$id,new r,new i);{const t=s;return{key:t.key??e.store.$id,afterRestore:t.afterRestore??n,beforeRestore:t.beforeRestore??n,serializer:t.serializer??new i,storage:t.storage??new r,slave:t.slave??void 0,center:t.center??!1,onExpire:t.onExpire??n}}}(e,s);c(o,e),e.store.$subscribe(((e,t)=>{const s=o.serializer,r=o.key;o.storage.setItem(s.serialize(r),s.serialize(t))}),{deep:!0,detached:!0})}function h(e){e.options.persistence&&l(e,e.options.persistence)}export{h as default}; |
| import { PersistentCenterStateOption, PersistentStateOption } from "../type"; | ||
| import type { PiniaPluginContext } from "pinia"; | ||
| export declare function executor( | ||
| context: PiniaPluginContext, | ||
| persistence: boolean | PersistentStateOption | PersistentCenterStateOption | ||
| ): void; | ||
| export declare function executor(context: PiniaPluginContext, persistence: boolean | PersistentStateOption | PersistentCenterStateOption): void; |
+1
-1
| { | ||
| "name": "pinia-plugin-data", | ||
| "version": "0.0.7", | ||
| "version": "0.0.8", | ||
| "main": "./lib/index.min.js", | ||
@@ -5,0 +5,0 @@ "types": "./lib/index.d.ts", |
8383
0.16%118
-2.48%