Statekit - v2.0.1
    Preparing search index...

    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.

      Type Parameters

      • TState extends object
      • TActions extends object = Record<never, never>

      Parameters

      • key: string

        A unique key to identify the store in storage.

      • initialState: TState

        The initial state of the store.

      • OptionaldefineActions: null | DefineActions<TState, TActions> = null

        A function to define actions for the store.

      • Optionaloptions: PersistentStoreOptions<TState> = {}

        Additional options for the persistent store.

      Returns Store<TState, TActions>

      The created store.

      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",
      },
      );