jiff
Version:
JSON diff and patch based on rfc6902
19 lines (15 loc) • 371 B
JavaScript
var patches = require('./patches');
module.exports = function inverse(p) {
var pr = [];
var i, skip;
for(i = p.length-1; i>= 0; i -= skip) {
skip = invertOp(pr, p[i], i, p);
}
return pr;
};
function invertOp(patch, c, i, context) {
var op = patches[c.op];
return op !== void 0 && typeof op.inverse === 'function'
? op.inverse(patch, c, i, context)
: 1;
}