Skip to main content

Persist

import { createStore, persist } from '@sinuxjs/core';

const store = createStore(
{ theme: 'light', user: null },
{ setTheme: (s, theme) => ({ theme }) },
[persist({
key: 'app-settings',
partialize: (state) => ({ theme: state.theme }), // only persist theme
})]
);

State is saved to localStorage on every change and restored on init.

Options

OptionTypeDescription
keystringStorage key
storageSinuxStorageCustom storage (default: localStorage)
partialize(state) => Partial<T>Select what to persist
versionnumberSchema version for migrations
migrate(persisted, version) => TMigration function

Custom storage (React Native)

persist({
key: 'app',
storage: AsyncStorage, // any { getItem, setItem, removeItem }
})