Persistent Storage APIs
This API creates a reactive state that is automatically synchronized with the browser's localStorage.
Core Persistent Functions
persistent()
Creates a reactive object that persists its data across browser sessions by synchronizing with localStorage. This is the primary, high-level API you should use for persistent state.
type persistent = <T extends ObjLike, S extends LinkableSchema = LinkableSchema>(
name: string,
init: T,
options?: StateOptions<S>
) => T;name: A unique key for the storage instance. You can also specify a version by appending@x.x.xand a version to migrate from with@x.x.x:x.x.x.init: The initial state, used if no data exists in local storage. See ObjLike.options(optional): Standard anchor state options. See StateOptions and LinkableSchema.- Returns: A reactive object that is synced with
localStorage. See T.
persistent.leave()
Disconnects a persistent state from localStorage, stopping synchronization and cleaning up its resources.
type leave = <T extends ObjLike>(state: T) => void;state: The reactive state to disconnect. See ObjLike.
Persistent Storage Classes
PersistentStorage
PersistentStorage is a lower-level class that extends SessionStorage to provide persistent storage functionality. This class uses localStorage to persist data across browser sessions. It is used internally by the persistent() function.
interface PersistentStorage<T extends Record<string, unknown> = Record<string, unknown>> extends SessionStorage<T> {
readonly key: string;
readonly oldKey: string;
}Properties
key: string
The storage key used in localStorage for the current version of the data. The format is anchor-persistent://{name}@{version}.
oldKey: string
The storage key for the previous version of the data. This is used internally to clean up old data during a version migration.