UNPKG

effector-persist

Version:

Higher-order function for persist effector store in local storage

28 lines 925 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withPersist = void 0; const effector_1 = require("effector"); const defaultConfig = { key: 'persist' }; const withPersist = (store, config = defaultConfig) => { const name = store.shortName; const { key, expire } = config; const persistKey = `${key}:${name}`; const rehydrate = (0, effector_1.createEvent)('@PERSIST/REHYDRATE'); if (expire && isExpired(expire)) { localStorage.removeItem(persistKey); } const snapshot = localStorage.getItem(persistKey); if (snapshot) { store.on(rehydrate, () => JSON.parse(snapshot)); rehydrate(); } store.watch((state) => { localStorage.setItem(persistKey, JSON.stringify(state)); }); return store; }; exports.withPersist = withPersist; const isExpired = (expire) => expire < Date.now(); //# sourceMappingURL=index.js.map