Files
yjs/src/Transaction.js

28 lines
800 B
JavaScript
Raw Normal View History

export default class Transaction {
constructor (y) {
this.y = y
// types added during transaction
this.newTypes = new Set()
// changed types (does not include new types)
2017-10-30 11:33:00 +01:00
// maps from type to parentSubs (item._parentSub = null for array elements)
this.changedTypes = new Map()
2017-10-30 11:33:00 +01:00
this.deletedStructs = new Set()
this.beforeState = new Map()
2017-11-07 22:44:43 -08:00
this.changedParentTypes = new Map()
}
}
export function transactionTypeChanged (y, type, sub) {
if (type !== y && !type._deleted && !y._transaction.newTypes.has(type)) {
const changedTypes = y._transaction.changedTypes
let subs = changedTypes.get(type)
if (subs === undefined) {
// create if it doesn't exist yet
subs = new Set()
changedTypes.set(type, subs)
}
subs.add(sub)
}
}