Skip to content

Documentation / @super-line/core / ServerStore

Interface: ServerStore

Defined in: packages/core/src/store.ts:52

The server half of a Store pair: persistence + the consistency model + change-notification. It does NOT enforce access (core does) and does NOT touch the wire. apply interprets a StoreChange per its consistency model (LWW replace vs CRDT merge); every applied mutation — client write, server co-write, or relayed remote change — must surface through ServerStore.onChange, which is core's single fan-out source.

Properties

clustering

readonly clustering: "relay" | "self"

Defined in: packages/core/src/store.ts:57

How cross-node sync happens: relay (core relays Changes over the adapter; each node a replica) or self (the store owns a shared backend and core fans only to local subscribers).

Methods

apply()

apply(change): Awaitable<void>

Defined in: packages/core/src/store.ts:63

Apply an inbound Change — replace (LWW) or merge (CRDT), the store's choice.

Parameters

change

StoreChange

Returns

Awaitable<void>


close()?

optional close(): Awaitable<void>

Defined in: packages/core/src/store.ts:73

Release any resources held by the store.

Returns

Awaitable<void>


create()

create(id, data, accessRules): Awaitable<void>

Defined in: packages/core/src/store.ts:61

Create a Resource with initial data + access rules (server-authoritative).

Parameters

id

string

data

unknown

accessRules

AccessRules

Returns

Awaitable<void>


delete()

delete(id): Awaitable<void>

Defined in: packages/core/src/store.ts:67

Remove a Resource.

Parameters

id

string

Returns

Awaitable<void>


list()

list(): Awaitable<string[]>

Defined in: packages/core/src/store.ts:69

All Resource ids in this store (core ACL-filters before returning ids to a client).

Returns

Awaitable<string[]>


onChange()

onChange(cb): () => void

Defined in: packages/core/src/store.ts:71

Subscribe to every applied mutation — the single fan-out source. Returns an unsubscribe fn.

Parameters

cb

(change) => void

Returns

() => void


read()

read(id): Awaitable<Resource<unknown> | undefined>

Defined in: packages/core/src/store.ts:59

Current snapshot of a Resource (for catch-up on subscribe), or undefined if absent.

Parameters

id

string

Returns

Awaitable<Resource<unknown> | undefined>


setAccess()

setAccess(id, accessRules): Awaitable<void>

Defined in: packages/core/src/store.ts:65

Replace a Resource's access rules.

Parameters

id

string

accessRules

AccessRules

Returns

Awaitable<void>

Released under the MIT License.