@gluonjs/core / packages/store/src / PersistenceLifecycle
Interface: PersistenceLifecycle
Properties
error
readonlyerror:unknown
ready
readonlyready:Promise<void>
status
readonlystatus:PersistenceStatus
Methods
dispose()
dispose():
void
Returns
void
Example
Observe per-store readiness and failure ownership through the extension metadata:
ts
import { createBroadcastChannelFactory, createIndexedDbStorage, createLocalStorageAdapter, createMemoryStorage, createSessionStorageAdapter, createWebStorageAdapter, type IndexedDbFactory, type IndexedDbStorageOptions, type PersistenceChannel, type PersistenceChannelFactory, type PersistenceLifecycle, type PersistenceStatus, type PersistMergePolicy } from '@gluonjs/store';
const memory = createMemoryStorage({ draft: '{\"version\":1,\"state\":{}}' });
const local = createLocalStorageAdapter(memory);
const session = createSessionStorageAdapter(memory);
const web = createWebStorageAdapter('local', memory);
const channel: PersistenceChannel = { postMessage() {}, addEventListener() {}, removeEventListener() {} };
const channels: PersistenceChannelFactory = { create: () => channel };
const status: PersistenceStatus = 'ready';
const lifecycle: PersistenceLifecycle | undefined = undefined;
const merge: PersistMergePolicy<{ value: number }> = 'server-wins';
const factory: IndexedDbFactory | undefined = undefined;
const indexedDbOptions: IndexedDbStorageOptions = { database: 'shop', store: 'state', factory };
const indexed = factory ? createIndexedDbStorage(indexedDbOptions) : undefined;
const browserChannels = typeof BroadcastChannel === 'undefined' ? channels : createBroadcastChannelFactory();
console.log(local, session, web, indexed, browserChannels, status, lifecycle, merge);