Skip to main content

Interface: SharedStore<S>

Type Parameters

Type Parameter
S extends Record<string, unknown>

Properties

clientId

readonly clientId: string;

state

readonly state: S;

Live proxy for imperative use: store.state.count++ syncs everywhere.

Methods

close()

close(): void;

Returns

void


getSnapshot()

getSnapshot(): Readonly<S>;

Immutable snapshot, replaced whenever a change is applied. Safe for useSyncExternalStore.

Returns

Readonly<S>


getVersions()

getVersions(): Readonly<Record<string, Version>>;

The per-key version clocks behind the snapshot. Referentially stable, like getSnapshot.

Returns

Readonly<Record<string, Version>>


registerKey()

registerKey<K>(key, initial): void;

Register a key lazily at version [0, clientId] — any patch or snapshot a peer has already made for it wins over the initial value. No-op if the key already exists.

Type Parameters

Type Parameter
K extends string

Parameters

ParameterType
keyK
initialS[K]

Returns

void


set()

set<K>(key, value): void;

Type Parameters

Type Parameter
K extends string

Parameters

ParameterType
keyK
valueS[K] | ((prev) => S[K])

Returns

void


subscribe()

subscribe(fn): () => void;

Parameters

ParameterType
fn(key, value, meta) => void

Returns

() => void


subscribeKey()

subscribeKey(key, fn): () => void;

Parameters

ParameterType
keykeyof S & string
fn() => void

Returns

() => void