objectdiff

Compares JavaScript objects

#objectDiff

objectdiff on npm

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 } } } } }

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}}}

Used on the demo page.

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