UNPKG

@sandstack/neuron

Version:

Neuron is a lightweight framework agnostic global state manager for Javascript apps, with React support

3 lines (2 loc) 1.48 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("../core"),S="@sandstack/neuron-persist",u=(e,r,t)=>{const a=`${S}/${r??e.key}`,c=t==="session"?"session":"local",s=JSON.stringify(e.state);c==="local"?localStorage&&localStorage.setItem(a,s):c==="session"&&sessionStorage&&sessionStorage.setItem(a,s)},h=(e,r,t)=>{const a=`${S}/${r??e.key}`,c=t==="session"?"session":"local";if(c==="local"){if(localStorage){const s=localStorage==null?void 0:localStorage.getItem(a);return s!==null?JSON.parse(s):null}}else if(c==="session"&&sessionStorage){const s=sessionStorage.getItem(a);return s!==null?JSON.parse(s):null}return null},f=e=>new m.Module({name:S,onInit:r=>{var t,a,c,s,g;if((t=e==null?void 0:e.storage)!=null&&t.getItem){const l=(c=(a=e==null?void 0:e.storage)==null?void 0:a.getItem)==null?void 0:c.call(a,r.key);l!=null&&l!=null?r.state=l:e.storage.setItem?(g=(s=e==null?void 0:e.storage)==null?void 0:s.setItem)==null||g.call(s,r.key,r.state):u(r,e==null?void 0:e.storageKey,e.storageType)}else{const l=h(r,e==null?void 0:e.storageKey,e==null?void 0:e.storageType);l!=null&&l!=null?r.state=l:u(r,e==null?void 0:e.storageKey,e==null?void 0:e.storageType)}},onCallback:r=>{var t,a;((a=(t=e==null?void 0:e.storage)==null?void 0:t.setItem)==null?void 0:a.call(t,r.key,r.state))??u(r,e==null?void 0:e.storageKey,e==null?void 0:e.storageType)}});globalThis.NeuronPersist={Persist:f};exports.Persist=f; //# sourceMappingURL=index.cjs.map