UNPKG

@sandstack/neuron

Version:

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

53 lines (52 loc) 1.95 kB
import { Module as f } from "../core"; const S = "@sandstack/neuron-persist", u = (e, a, c) => { const r = `${S}/${a ?? e.key}`, l = c === "session" ? "session" : "local", s = JSON.stringify(e.state); l === "local" ? localStorage && localStorage.setItem(r, s) : l === "session" && sessionStorage && sessionStorage.setItem(r, s); }, m = (e, a, c) => { const r = `${S}/${a ?? e.key}`, l = c === "session" ? "session" : "local"; if (l === "local") { if (localStorage) { const s = localStorage == null ? void 0 : localStorage.getItem(r); return s !== null ? JSON.parse(s) : null; } } else if (l === "session" && sessionStorage) { const s = sessionStorage.getItem(r); return s !== null ? JSON.parse(s) : null; } return null; }, h = (e) => new f({ name: S, onInit: (a) => { var c, r, l, s, g; if ((c = e == null ? void 0 : e.storage) != null && c.getItem) { const t = (l = (r = e == null ? void 0 : e.storage) == null ? void 0 : r.getItem) == null ? void 0 : l.call(r, a.key); t != null && t != null ? a.state = t : e.storage.setItem ? (g = (s = e == null ? void 0 : e.storage) == null ? void 0 : s.setItem) == null || g.call(s, a.key, a.state) : u( a, e == null ? void 0 : e.storageKey, e.storageType ); } else { const t = m( a, e == null ? void 0 : e.storageKey, e == null ? void 0 : e.storageType ); t != null && t != null ? a.state = t : u( a, e == null ? void 0 : e.storageKey, e == null ? void 0 : e.storageType ); } }, onCallback: (a) => { var c, r; ((r = (c = e == null ? void 0 : e.storage) == null ? void 0 : c.setItem) == null ? void 0 : r.call(c, a.key, a.state)) ?? u(a, e == null ? void 0 : e.storageKey, e == null ? void 0 : e.storageType); } }); globalThis.NeuronPersist = { Persist: h }; export { h as Persist }; //# sourceMappingURL=persist.js.map