Skip to content

BlockSuite API Documentation / @blocksuite/store / Y / Doc

Class: Doc

A Yjs instance handles the state of shared data.

Extends

  • ObservableV2<DocEvents>

Extended by

Constructors

new Doc()

new Doc(opts?): Doc

Parameters

opts?: DocOpts

configuration

Returns

Doc

Overrides

ObservableV2<DocEvents>.constructor

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:35

Properties

_item

_item: null | Item

If this document is a subdocument - a document integrated into another document - then _item is defined.

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:62


_observers

_observers: Map<string, Set<any>>

Some desc.

Inherited from

ObservableV2._observers

Source

node_modules/.pnpm/lib0@0.2.93/node_modules/lib0/observable.d.ts:15


_transaction

_transaction: null | Transaction

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:49


_transactionCleanups

_transactionCleanups: Transaction[]

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:53


autoLoad

autoLoad: boolean

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:64


clientID

clientID: number

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:38


collectionid

collectionid: null | string

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:40


gc

gc: boolean

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:36


gcFilter()

gcFilter: (arg0) => boolean

Parameters

arg0: Item

Returns

boolean

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:37


guid

guid: string

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:39


isLoaded

isLoaded: boolean

This is set to true when the persistence provider loaded the document from the database or when the sync event fires. Note that not all providers implement this feature. Provider authors are encouraged to fire the load event when the doc content is loaded from the database.

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:72


isSynced

isSynced: boolean

This is set to true when the connection provider has successfully synced with a backend. Note that when using peer-to-peer providers this event may not provide very useful. Also note that not all providers implement this feature. Provider authors are encouraged to fire the sync event when the doc has been synced (with true as a parameter) or if connection is lost (with false as a parameter).

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:80


meta

meta: any

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:65


share

share: Map<string, AbstractType<YEvent<any>>>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:44


shouldLoad

shouldLoad: boolean

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:63


store

store: StructStore

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:45


subdocs

subdocs: Set<Doc>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:57


whenLoaded

whenLoaded: Promise<any>

Promise that resolves once the document has been loaded from a presistence provider.

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:84


whenSynced

whenSynced: Promise<any>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:85

Methods

destroy()

destroy(): void

Returns

void

Inherited from

ObservableV2.destroy

Source

node_modules/.pnpm/lib0@0.2.93/node_modules/lib0/observable.d.ts:45


emit()

emit<NAME_3>(name, args): void

Emit a named event. All registered event listeners that listen to the specified name will receive the event.

Type parameters

NAME_3 extends "subdocs" | "destroy" | "load" | "sync" | "update" | "updateV2" | "beforeAllTransactions" | "beforeTransaction" | "beforeObserverCalls" | "afterTransaction" | "afterTransactionCleanup" | "afterAllTransactions"

Parameters

name: NAME_3

The event name.

args: Parameters<DocEvents[NAME_3]>

The arguments that are applied to the event listener.

Returns

void

Inherited from

ObservableV2.emit

Todo

This should catch exceptions

Source

node_modules/.pnpm/lib0@0.2.93/node_modules/lib0/observable.d.ts:44


get()

get<Type>(name, TypeConstructor?): InstanceType<Type>

Define a shared data type.

Multiple calls of ydoc.get(name, TypeConstructor) yield the same result and do not overwrite each other. I.e. ydoc.get(name, Y.Array) === ydoc.get(name, Y.Array)

After this method is called, the type is also available on ydoc.share.get(name).

Best Practices: Define all types right after the Y.Doc instance is created and store them in a separate object. Also use the typed methods getText(name), getArray(name), ..

Type parameters

Type extends () => AbstractType<any>

Parameters

name: string

TypeConstructor?: Type

The constructor of the type definition. E.g. Y.Text, Y.Array, Y.Map, ...

Returns

InstanceType<Type>

The created type. Constructed with TypeConstructor

Example

ts
const ydoc = new Y.Doc(..)
  const appState = {
    document: ydoc.getText('document')
    comments: ydoc.getArray('comments')
  }

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:137


getArray()

getArray<T_1>(name?): Array<T_1>

Type parameters

T_1

Parameters

name?: string

Returns

Array<T_1>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:147


getMap()

getMap<T_2>(name?): Map<T_2>

Type parameters

T_2

Parameters

name?: string

Returns

Map<T_2>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:162


getSubdocGuids()

getSubdocGuids(): Set<string>

Returns

Set<string>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:95


getSubdocs()

getSubdocs(): Set<Doc>

Returns

Set<Doc>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:94


getText()

getText(name?): Text

Parameters

name?: string

Returns

Text

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:154


getXmlElement()

getXmlElement(name?): XmlElement<object>

Parameters

name?: string

Returns

XmlElement<object>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:169


getXmlFragment()

getXmlFragment(name?): XmlFragment

Parameters

name?: string

Returns

XmlFragment

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:176


load()

load(): void

Notify the parent document that you request to load data into this subdocument (if it is a subdocument).

load() might be used in the future to request any provider to load the most current data.

It is safe to call load() multiple times.

Returns

void

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:93


off()

off<NAME_2>(name, f): void

Type parameters

NAME_2 extends "subdocs" | "destroy" | "load" | "sync" | "update" | "updateV2" | "beforeAllTransactions" | "beforeTransaction" | "beforeObserverCalls" | "afterTransaction" | "afterTransactionCleanup" | "afterAllTransactions"

Parameters

name: NAME_2

f: DocEvents[NAME_2]

Returns

void

Inherited from

ObservableV2.off

Source

node_modules/.pnpm/lib0@0.2.93/node_modules/lib0/observable.d.ts:33


on()

on<NAME>(name, f): DocEvents[NAME]

Type parameters

NAME extends "subdocs" | "destroy" | "load" | "sync" | "update" | "updateV2" | "beforeAllTransactions" | "beforeTransaction" | "beforeObserverCalls" | "afterTransaction" | "afterTransactionCleanup" | "afterAllTransactions"

Parameters

name: NAME

f: DocEvents[NAME]

Returns

DocEvents[NAME]

Inherited from

ObservableV2.on

Source

node_modules/.pnpm/lib0@0.2.93/node_modules/lib0/observable.d.ts:21


once()

once<NAME_1>(name, f): void

Type parameters

NAME_1 extends "subdocs" | "destroy" | "load" | "sync" | "update" | "updateV2" | "beforeAllTransactions" | "beforeTransaction" | "beforeObserverCalls" | "afterTransaction" | "afterTransactionCleanup" | "afterAllTransactions"

Parameters

name: NAME_1

f: DocEvents[NAME_1]

Returns

void

Inherited from

ObservableV2.once

Source

node_modules/.pnpm/lib0@0.2.93/node_modules/lib0/observable.d.ts:27


toJSON()

toJSON(): object

Converts the entire document into a js object, recursively traversing each yjs type Doesn't log types that have not been defined (using ydoc.getType(..)).

Returns

object

Deprecated

Do not use this method and rather call toJSON directly on the shared types.

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:185


transact()

transact<T>(f, origin?): T

Changes that happen inside of a transaction are bundled. This means that the observer fires after the transaction is finished and that all changes that happened inside of the transaction are sent as one message to the other peers.

Type parameters

T

Parameters

f

The function that should be executed as a transaction

origin?: any

Origin of who started the transaction. Will be stored on transaction.origin

Returns

T

T

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Doc.d.ts:109