Skip to content

Compose does not preserve invertable operations #20

@Jocs

Description

@Jocs

Bad case:

const json1 = require('ot-json1')

const doc = [{
    text: '-'
}]

const op1 = json1.editOp([0, 'text'], 'text-unicode', [{ d: '-' }])
const op2 = json1.removeOp([0], { text: '' })

const op = json1.type.compose(op1, op2)

const result = json1.type.apply(doc, op)

console.log(result) // []

const invertedOp = json1.type.invert(op)

const result2 = json1.type.apply(result, invertedOp)

console.log(result2) // [ { text: '' } ]

Expect result2 equal to doc ? But they are not equal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions