Skip to content

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

Class: Transaction

A transaction is created for every change on the Yjs model. It is possible to bundle changes on the Yjs model in a single transaction to minimize the number on messages sent and the number of observer calls. If possible the user of this library should bundle as many changes as possible. Here is an example to illustrate the advantages of bundling:

Example

ts
const ydoc = new Y.Doc()
const map = ydoc.getMap('map')
// Log content when change is triggered
map.observe(() => {
  console.log('change triggered')
})
// Each change on the map type triggers a log message:
map.set('a', 0) // => "change triggered"
map.set('b', 0) // => "change triggered"
// When put in a transaction, it will trigger the log after the transaction:
ydoc.transact(() => {
  map.set('a', 1)
  map.set('b', 1)
}) // => "change triggered"

@public

Constructors

new Transaction()

new Transaction(doc, origin, local): Transaction

Parameters

doc: Doc

origin: any

local: boolean

Returns

Transaction

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:32

Properties

_mergeStructs

_mergeStructs: AbstractStruct[]

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:69


_needFormattingCleanup

_needFormattingCleanup: boolean

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:99


afterState

afterState: Map<number, number>

Holds the state after the transaction.

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:52


beforeState

beforeState: Map<number, number>

Holds the state before the transaction started.

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:47


changed

changed: Map<AbstractType<YEvent<any>>, Set<null | string>>

All types that were directly modified (property added or child inserted/deleted). New types are not included in this Set. Maps from type to parentSubs (item.parentSub = null for YArray)

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:59


changedParentTypes

changedParentTypes: Map<AbstractType<YEvent<any>>, YEvent<any>[]>

Stores the events for the types that observe also child elements. It is mainly used by observeDeep.

Source

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


deleteSet

deleteSet: DeleteSet

Describes the set of deleted items by ids

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:42


doc

doc: Doc

The Yjs instance.

Source

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


local

local: boolean

Whether this change originates from this doc.

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:83


meta

meta: Map<any, any>

Stores meta information on the transaction

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:78


origin

origin: any

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:73


subdocsAdded

subdocsAdded: Set<Doc>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:87


subdocsLoaded

subdocsLoaded: Set<Doc>

Source

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


subdocsRemoved

subdocsRemoved: Set<Doc>

Source

node_modules/.pnpm/yjs@13.6.15/node_modules/yjs/dist/src/utils/Transaction.d.ts:91