UNPKG

kosha

Version:

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

2 lines (1 loc) 1.06 kB
"use strict";var d=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var u=(e,t)=>{for(var r in t)d(e,r,{get:t[r],enumerable:!0})},v=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of p(t))!g.call(e,s)&&s!==r&&d(e,s,{get:()=>t[s],enumerable:!(a=m(t,s))||a.enumerable});return e};var y=e=>v(d({},"__esModule",{value:!0}),e);var w={};u(w,{persist:()=>T});module.exports=y(w);var T=e=>t=>(r,a)=>{let s=!1,l=()=>{let o=localStorage.getItem(e.key);if(!o)return;let n=JSON.parse(o);if(e.version===void 0||e.version===n.version)r(n.state);else if(e.migrate){let i=e.migrate(n.state,n.version);i instanceof Promise?i.then(S=>{r(S)}):r(i)}},c=(o,n)=>{let i={...a(),...o instanceof Function?o(a()):o},S=e.partialize?e.partialize(i):i;localStorage.setItem(e.key,JSON.stringify({state:S,version:e.version})),n?r(i,n):r(i)},f=()=>(!s&&typeof window!="undefined"&&(l(),window.addEventListener("storage",l),s=!0),a());return{...t(c,a),__get:f}};0&&(module.exports={persist});