UNPKG

@stainless-code/persist

Version:

Hydration-aware persistence for any reactive store — zero-dep persistSource core; codecs, backends, cross-tab transport, source + framework hydration adapters ship as opt-in recipes

27 lines (26 loc) • 877 B
import { l as persistSource } from "../persist-core-B5VikEft.mjs"; //#region src/adapters/sources/zustand.ts /** * Persist a zustand store. zustand's `getState`/`setState`/`subscribe` map * directly to `PersistableSource`. * * @example * ```ts * import { create } from "zustand"; * import { createJSONStorage } from "@stainless-code/persist"; * import { persistStore } from "@stainless-code/persist/sources/zustand"; * const store = create(() => ({ count: 0 })); * const persist = persistStore(store, { name: "count", storage: createJSONStorage(() => localStorage) }); * ``` */ function persistStore(store, options) { return persistSource({ getState: () => store.getState(), setState: (updater) => store.setState(updater), subscribe: (listener) => { return { unsubscribe: store.subscribe(() => listener()) }; } }, options); } //#endregion export { persistStore };