UNPKG

pinia-persist

Version:

Persist and rehydrate your Pinia state between page reloads

2 lines (1 loc) 1.29 kB
!function(t){"use strict";function r(t,r,i,e){return!/^(__proto__|constructor|prototype)$/.test(r)&&((r=r.split?r.split("."):r.slice(0)).slice(0,-1).reduce((function(t,r){return t[r]=t[r]||{}}),t)[r.pop()]=i),t}function i(t,r,i,e){var n,o;return null!==(o=null!==(n=r[i])&&void 0!==n?n:t[i])&&void 0!==o?o:e}t.createPersistPlugin=function(t){var e=window&&window.localStorage,n=null!=t?t:{};return function(t){var o,s,u,c=null!==(s=null===(o=t.options)||void 0===o?void 0:o.persist)&&void 0!==s?s:{},l=null!==(u=c.key)&&void 0!==u?u:t.store.$id,a=i(n,c,"overwrite",!1),d=i(n,c,"storage",e),f=i(n,c,"filter",(function(){return!0})),v=i(n,c,"serialization",JSON.stringify),p=i(n,c,"deserialization",JSON.parse);try{var P=d.getItem(l);if(null!==P){var h=p(P);a?t.store.$state=h:t.store.$patch(h)}}catch(t){}t.store.$subscribe((function(t,i){if(!1!==f(t,i)){Array.isArray(c.includePaths)?i=c.includePaths.reduce((function(t,e){return r(t,e,function(t,r,i){return void 0===(t=(r.split?r.split("."):r).reduce((function(t,r){return t&&t[r]}),t))?i:t}(i,e))}),{}):Array.isArray(c.excludePaths)&&(i=p(v(i)),c.excludePaths.forEach((function(t){return r(i,t,void 0)}),{}));var e=v(i);d.setItem(l,e)}}))}},Object.defineProperty(t,"__esModule",{value:!0})}(this.PiniaPersist=this.PiniaPersist||{});