substance
Version:
Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing systems.
18 lines (17 loc) • 497 B
JavaScript
import { cloneDeep, ObjectOperation } from 'substance'
// NOTE: this is essentially a copy of ../../collab/computeSnapshot
export default function computeSnapshot(jsonDoc, changeset) {
jsonDoc = cloneDeep(jsonDoc)
let nodes = jsonDoc.nodes
changeset.forEach((change) => {
change.ops.forEach((opData) => {
try {
let op = ObjectOperation.fromJSON(opData)
op.apply(nodes)
} catch (err) {
console.error(err, opData)
}
})
})
return jsonDoc
}