UNPKG

@jiuyue-/pinia-persisted-state

Version:
2 lines (1 loc) 662 B
var Persist=function(){"use strict";let t=localStorage,e="pinia";const s=t=>{const s=t.getItem(e);return s?JSON.parse(s):{}},r=(r,n)=>{const{paths:o,storage:a=t,key:i=r.$id}=n;let c=r.$state,g=s(a);o&&Array.isArray(o)&&o.length>0&&(c=o?.reduce(((t,e)=>(t[e]=r.$state[e],t)),{})),a.setItem(e,JSON.stringify(Object.assign(g,{[i]:c})))};return function(n,o){o&&(s=>{const{name:r,storage:n}=s;r&&(e=r),n&&(t=n)})(o);const{options:a,store:i}=n,c=i.$id,g=a?.persist;let p;if(!a?.persist)return;const u={key:c,storage:t,paths:[]};p=g&&"boolean"==typeof g?u:Object.assign(u,g);const{key:l=c,storage:y=t}=p,$=s(y)[l];$&&i.$patch($),i.$subscribe((()=>r(i,p))),r(i,p)}}();