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
| Parameter | Type |
|---|---|
key | K |
initial | S[K] |
Returns
void
set()
set<K>(key, value): void;
Type Parameters
| Type Parameter |
|---|
K extends string |
Parameters
| Parameter | Type |
|---|---|
key | K |
value | S[K] | ((prev) => S[K]) |
Returns
void
subscribe()
subscribe(fn): () => void;
Parameters
| Parameter | Type |
|---|---|
fn | (key, value, meta) => void |
Returns
() => void
subscribeKey()
subscribeKey(key, fn): () => void;
Parameters
| Parameter | Type |
|---|---|
key | keyof S & string |
fn | () => void |
Returns
() => void