Вложенное удаление JSON в ShareJS

В настоящее время я экспериментирую с реализацией ShareJS для оперативного преобразования (в частности, JSON API). В вики было не очень понятно, что произойдет, если я удалю родительский объект JSON, и вошла другая операция, которая вставляла в дочерний JSON. Будет ли воссоздан родительский JSON или он будет недоступен?

Например

{"aa":
  {"bb":
    {"cc":"dd"}
  }
}
//Operation A and B comes in carrying the same version number
//Op A deletes "aa", Op B modifies "cc"
//What happens? (assuming A comes in slightly earlier and is processed first)

1 ответ

Решение

Просто сам проверил

op1 = [{p: ["aa"], od: {"bb": {"cc":"dd"}} }] // Deletes "aa"
op2 = [{p: ["aa", "bb", "cc"], od: "dd", oi: "ee"}] // Modifies "cc"
console.log(json.transform(op2, op1, 'left'))
>> []

Это означает, что когда op2 преобразуется в op1, он становится no-op -> никакой объект не будет воссоздан.

Другие вопросы по тегам