diff-upsert

0.1.4 • Public • Published

diff-upsert

DiffUpsert deep diffs a modified Javascript object with a base object using recursive matcher. DiffUpsert can also upsert a delta into a base object to bring it up-to-date. This is helpful for managing changes to JSON configurations with deep trees.

NOTE: Contrast this behavior with the standard Object.assign() method, which only handles shallow deltas.

Base Object

var jbase = {
    color: 'red',
    sleeve: {
        length: 31,
    },
}

Updated Object

var jupdated = {
    color: 'red',
    sleeve: {
        length: 32, // updated property
    },
}

diff

var du = new DiffUpsert();
var delta = du.diff(jupdated, jbase);
//{
//    sleeve: {
//        length: 32, // updated property
//    },
//}

upsert

// jbase.sleeve.length === 31
du.upsert(jbase, delta); 
// jbase.sleeve.length === 32

excludeKeys

DiffUpsert can be configured to ignore selected keys:

var du = new DiffUpsert({
    excludeKeys: /^\$.*/,
});

Dependencies (0)

    Dev Dependencies (2)

    Package Sidebar

    Install

    npm i diff-upsert

    Weekly Downloads

    33

    Version

    0.1.4

    License

    MIT

    Last publish

    Collaborators

    • firepick