UBER-853 Move snapshot creation to collaboration provider (#3807)

Signed-off-by: Alexander Onnikov <alexander.onnikov@xored.com>
This commit is contained in:
Alexander Onnikov
2023-10-07 12:17:06 +07:00
committed by GitHub
parent c8d569621d
commit ca0dd235b6
4 changed files with 91 additions and 18 deletions
+28
View File
@@ -38,3 +38,31 @@ export function yDocContentToNode (extensions: Extensions, content: ArrayBuffer,
return schema.node(schema.topNodeType)
}
}
/**
* Get ProseMirror nodes from Y.Doc content
*
* @public
*/
export function yDocContentToNodes (extensions: Extensions, content: ArrayBuffer): Node[] {
const schema = getSchema(extensions)
const nodes: Node[] = []
try {
const ydoc = new Doc()
const uint8arr = new Uint8Array(content)
applyUpdate(ydoc, uint8arr)
for (const field of ydoc.share.keys()) {
try {
const body = yDocToProsemirrorJSON(ydoc, field)
nodes.push(schema.nodeFromJSON(body))
} catch {}
}
} catch (err: any) {
console.error(err)
}
return nodes
}