objectdiff

Compares JavaScript objects

npm install objectdiff
13 downloads in the last day
32 downloads in the last week
287 downloads in the last month

objectDiff

objectdiff on npm

objectDiff.diff(objectA, objectB)

objectDiff.diff({x: 1}, {x: 2})
-> {
  changed: "object change",
  value: {
    x: {
      changed: "primitive change",
      removed: 1,
      added: 2
    }
  }
}

objectDiff.diff({z: {x: 1}}, {z: {y: 2}})
-> {
  changed: "object change",
  value: {
    z: {
      changed: "object change",
      value: {
        x: {
          changed: "removed",
          value: 1
        },
        y: {
          changed: "added",
          value: 2
        }
      }
    }
  }
}

objectDiff.diffOwnProperties(objectA, objectB)

Same as objectDiff.diff, but compares only objects' own properties

function A(){}
A.prototype.x = 1
objectDiff.diff({x: 1}, new A)
-> {changed: "equal", value: {x: 1}}

objectDiff.diffOwnProperties({x: 1}, new A)
-> {changed: "object change", value: {x: {changed: "removed", value: 1}}}

objectDiff.convertToXMLString(diffObject)

Used on the demo page.

Jasmine integration

objectDiff provides toEqualProperties and toEqualOwnProperties matchers for Jasmine. See example spec.

npm loves you