Skip to content

@sqlrooms/room-store / createPersistHelpers

Function: createPersistHelpers()

createPersistHelpers<T>(sliceConfigs): object

Creates partialize and merge functions for Zustand persist middleware. Automatically handles extracting and merging slice configs.

Type Parameters

Type Parameter
T extends Record<string, ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>

Parameters

ParameterTypeDescription
sliceConfigsTMap of slice names to their Zod config schemas

Returns

object

Object with partialize and merge functions

NameType
partialize(state) => Record<string, any>
merge(persistedState, currentState) => any

Example

ts
const {partialize, merge} = createPersistHelpers({
  room: BaseRoomConfig,
  layout: LayoutConfig,
  sqlEditor: SqlEditorSliceConfig,
});

export const {roomStore, useRoomStore} = createRoomStore<RoomState>(
  persist(
    (set, get, store) => ({...}),
    {
      name: 'my-app-state-storage',
      partialize,
      merge,
    },
  ) as StateCreator<RoomState>,
);