Function createPersistentStore

Creates a store that persists its state in local or session storage. Defaults to local storage but this can be changed in the options.

Note: The state needs to be serializable by whatever serializer you use. (JSON by default) If you need something more versatile I would recommend using a library like superjson.

Basic usage:

import { createPersistentStore } from "@fransek/statekit";

const store = createPersistentStore("count", { count: 0 }, (set) => ({
increment: () => set((state) => ({ count: state.count + 1 })),
decrement: () => set((state) => ({ count: state.count - 1 })),
reset: () => set({ count: 0 }),
}));

With superjson serialization and session storage:

import { createPersistentStore } from "@fransek/statekit";
import superjson from "superjson";

const store = createPersistentStore(
"count",
{ count: 0 },
(set) => ({
increment: () => set((state) => ({ count: state.count + 1 })),
decrement: () => set((state) => ({ count: state.count - 1 })),
reset: () => set({ count: 0 }),
}),
{
serializer: superjson,
storage: "session",
},
);