2 lines
1.4 KiB
JavaScript
2 lines
1.4 KiB
JavaScript
(function(r,a){typeof exports=="object"&&typeof module!="undefined"?module.exports=a():typeof define=="function"&&define.amd?define(a):(r=typeof globalThis!="undefined"?globalThis:r||self,r.piniaPersist=a())})(this,function(){var S,l;"use strict";const r=typeof uni!="undefined"?["web","h5",void 0].includes((l=(S=uni==null?void 0:uni.getSystemInfoSync())==null?void 0:S.uniPlatform)==null?void 0:l.toLocaleLowerCase()):!0,a=(e,t,n)=>{const s=e.storage,i=e.key||t.$id,d=r||(n==null?void 0:n.enforceCustomStorage);if(e.paths){const f=e.paths.reduce((u,o)=>(u[o]=t.$state[o],u),{});d&&s?s.setItem(i,JSON.stringify(f)):uni.setStorage({key:i,data:JSON.stringify(f)})}else d&&s?s.setItem(i,JSON.stringify(t.$state)):uni.setStorage({key:i,data:JSON.stringify(t.$state)})};var $=({options:e,store:t})=>{var n,s,i,d,f,u;if((n=e.persist)!=null&&n.enabled){const o=[{key:t.$id,storage:((s=e.persist)==null?void 0:s.H5Storage)||(window==null?void 0:window.sessionStorage)}],h=(d=(i=e.persist)==null?void 0:i.strategies)!=null&&d.length?(f=e.persist)==null?void 0:f.strategies:o;h.forEach(c=>{var p,y;const w=c.storage||((p=e.persist)==null?void 0:p.H5Storage)||(window==null?void 0:window.sessionStorage),m=c.key||t.$id;let g;r||((y=e.persist)==null?void 0:y.enforceCustomStorage)?g=w.getItem(m):g=uni.getStorageSync(m),g&&(t.$patch(JSON.parse(g)),a(c,t,e.persist))}),t.$subscribe(()=>{h.forEach(c=>{a(c,t,e.persist)})},{detached:!!((u=e.persist)!=null&&u.detached)})}};return $});
|