Skip to content

Documentation / @super-line/client / DocHandle

Interface: DocHandle<Doc> ​

Defined in: index.ts:208

A reactive handle over one opened CRDT document (ADR-0007). set/update mutate the local replica and write the resulting delta through to the server, which validate-before-commits it; on rejection the server resyncs this replica.

Type Parameters ​

Doc ​

Doc = unknown

Properties ​

deleted ​

readonly deleted: boolean

Defined in: index.ts:233

True once the server fans out a delete for this document.


ready ​

readonly ready: Promise<void>

Defined in: index.ts:231

Resolves once the catch-up snapshot has been applied; rejects if the open is denied or the doc is absent.

Methods ​

close() ​

close(): void

Defined in: index.ts:235

Stop receiving changes and tell the server to unsubscribe.

Returns ​

void


delete() ​

delete(path): void

Defined in: index.ts:218

Surgically remove the value at path (merges, unlike a full-doc set); sent to the server.

Parameters ​

path ​

(string | number)[]

Returns ​

void


getSnapshot() ​

getSnapshot(): Doc | undefined

Defined in: index.ts:210

The current snapshot (undefined until the catch-up snapshot arrives).

Returns ​

Doc | undefined


native() ​

native(): unknown

Defined in: index.ts:229

The CRDT engine's own document handle, for a native root — a CRDT type bound beside the contract-described root, holding content whose merge granularity is finer than a field (collaborative text). Mutating it writes through exactly like set, and its content is invisible to the described snapshot and therefore to validation.

unknown by design: typing it would put the engine's CRDT library into @super-line/client's public surface. Narrow it with the accessor from the engine package — yDocOf(handle) from @super-line/collections-crdt-memory for the Yjs engine — which also documents the caveats.

Returns ​

unknown


set() ​

set(data): void

Defined in: index.ts:214

Replace the document (mutates the local CRDT doc); the delta is sent to the server.

Parameters ​

data ​

Doc

Returns ​

void


subscribe() ​

subscribe(cb): () => void

Defined in: index.ts:212

Subscribe to changes (local writes + remote merges). Returns an unsubscribe fn.

Parameters ​

cb ​

() => void

Returns ​

() => void


update() ​

update(partial): void

Defined in: index.ts:216

Merge a partial update; the delta is sent to the server.

Parameters ​

partial ​

Partial<Doc>

Returns ​

void

Released under the MIT License.