EasyDarwin/Win/web/assets/js/pinia-plugin-persistedstate...

2 lines
1.9 KiB
JavaScript

function h(r){return typeof r=="object"&&r!==null}function d(r,t){return r=h(r)?r:Object.create(null),new Proxy(r,{get(n,i,e){return i==="key"?Reflect.get(n,i,e):Reflect.get(n,i,e)||Reflect.get(t,i,e)}})}function y(r,t){return t.reduce((n,i)=>n==null?void 0:n[i],r)}function $(r,t,n){return t.slice(0,-1).reduce((i,e)=>/^(__proto__)$/.test(e)?{}:i[e]=i[e]||{},r)[t[t.length-1]]=n,r}function _(r,t){return t.reduce((n,i)=>{const e=i.split(".");return $(n,e,y(r,e))},{})}function v(r,t){return n=>{var i;try{const{storage:e=localStorage,beforeRestore:o=void 0,afterRestore:l=void 0,serializer:s={serialize:JSON.stringify,deserialize:JSON.parse},key:u=t.$id,paths:a=null,debug:c=!1}=n;return{storage:e,beforeRestore:o,afterRestore:l,serializer:s,key:((i=r.key)!=null?i:f=>f)(typeof u=="string"?u:u(t.$id)),paths:a,debug:c}}catch(e){return n.debug&&console.error("[pinia-plugin-persistedstate]",e),null}}}function g(r,{storage:t,serializer:n,key:i,debug:e}){try{const o=t==null?void 0:t.getItem(i);o&&r.$patch(n==null?void 0:n.deserialize(o))}catch(o){e&&console.error("[pinia-plugin-persistedstate]",o)}}function p(r,{storage:t,serializer:n,key:i,paths:e,debug:o}){try{const l=Array.isArray(e)?_(r,e):r;t.setItem(i,n.serialize(l))}catch(l){o&&console.error("[pinia-plugin-persistedstate]",l)}}function R(r={}){return t=>{const{auto:n=!1}=r,{options:{persist:i=n},store:e,pinia:o}=t;if(!i)return;if(!(e.$id in o.state.value)){const s=o._s.get(e.$id.replace("__hot:",""));s&&Promise.resolve().then(()=>s.$persist());return}const l=(Array.isArray(i)?i.map(s=>d(s,r)):[d(i,r)]).map(v(r,e)).filter(Boolean);e.$persist=()=>{l.forEach(s=>{p(e.$state,s)})},e.$hydrate=({runHooks:s=!0}={})=>{l.forEach(u=>{const{beforeRestore:a,afterRestore:c}=u;s&&(a==null||a(t)),g(e,u),s&&(c==null||c(t))})},l.forEach(s=>{const{beforeRestore:u,afterRestore:a}=s;u==null||u(t),g(e,s),a==null||a(t),e.$subscribe((c,f)=>{p(f,s)},{detached:!0})})}}export{R as c};