
Finding the complete diff between two JSONs and recreation of the original JSON from the current version of the JSON and previously calculated diff for version management.
npm install doc-diff-patch
Initializing
var vm = require('doc-diff-patch') const previousJson = { a: "How are you?", b: [1,2,3,4] }; const updatedJson = { a: "Where are you?", b: [1,2,3,4,5] };
Finding diff
const diff = vm.structDiff(previousJson, updatedJson); console.log(JSON.stringify(diff)) /* Output: { "a": [ {"action": "ins", "pos": 0, "val": "Where"}, {"action": "del", "pos": 0, "val": "How"} ], "b": [ {"action": "ins", "pos": 4, "val": [5]} ] } */
Finding diff with filter
const filter = {b: 1}; const diff = vm.structDiff(previousJson, updatedJson); console.log(JSON.stringify(diff)) /* Output: { "b": [ {"action": "ins", "pos": 4, "val": [5]} ] } */
Finding original json from updated json and full diff
console.log(JSON.stringify(vm.patchDiff(updatedJson, diff))) /* Output: { "val": { "a": "How are you?", "b": [1,2,3,4] }, "err": "" } */