You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cudr_slate-collaborative/packages/bridge/src/utils/toSync.ts

34 lines
564 B

import * as Automerge from 'automerge'
const toSync = (node: any): any => {
if (!node) {
return
}
if (node.hasOwnProperty('text')) {
return {
...node,
text: new Automerge.Text(node.text)
}
} else if (node.nodes) {
return {
...node,
nodes: node.nodes.map(toSync)
}
} else if (node.leaves) {
return {
...node,
leaves: node.leaves.map(toSync)
}
} else if (node.document) {
return {
...node,
document: toSync(node.document)
}
}
return node
}
export default toSync