UNPKG

kosha

Version:

⚡A modern, lightweight, fast, and powerful global state management library for modern React.js projects.

2 lines (1 loc) 573 B
var f=e=>d=>(i,a)=>{let o=!1,S=()=>{let s=localStorage.getItem(e.key);if(!s)return;let r=JSON.parse(s);if(e.version===void 0||e.version===r.version)i(r.state);else if(e.migrate){let t=e.migrate(r.state,r.version);t instanceof Promise?t.then(n=>{i(n)}):i(t)}},l=(s,r)=>{let t={...a(),...s instanceof Function?s(a()):s},n=e.partialize?e.partialize(t):t;localStorage.setItem(e.key,JSON.stringify({state:n,version:e.version})),r?i(t,r):i(t)},c=()=>(!o&&typeof window!="undefined"&&(S(),window.addEventListener("storage",S),o=!0),a());return{...d(l,a),__get:c}};export{f as a};