/** * Helper to create persist config with version and migrate. * Use when adding new persisted stores to ensure future schema changes are handled. * * @example * ```ts * persist( * (set) => ({ ... }), * persistWithMigration('my-storage', 1, (state, version) => state ?? defaultState) * ) * ``` */ export function persistWithMigration( name: string, version: number, migrate: (state: unknown, version: number) => T, partialize?: (state: T) => Partial, ): { name: string; version: number; migrate: (state: unknown, version: number) => T; partialize?: (state: T) => Partial; } { return { name, version, migrate, ...(partialize && { partialize }), }; }