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.
34 lines
564 B
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
|