Skip to content

Basic comparison of objects and arrays to get differences by path

License

Notifications You must be signed in to change notification settings

tonybranfort/ldb-change

Repository files navigation

ldb-change

Basic comparison of object literals and arrays to get differences by path

Functions

getDiffs(lObj, rObj, path, options)Array.<Diff>

Return an array of paths from an object (lObj) that don't match another object (rObj) and the values of each.
Equality comparisons include String, Number, Boolean, Date or set custom comparison with options.compare by path Each element or key in an Array or literal/plain Object is evaluated (unless options.stopAt set for path)

Typedefs

Diff : Object
GetDiffsOptions : Object

getDiffs(lObj, rObj, path, options) ⇒ Array.<Diff>

Return an array of paths from an object (lObj) that don't match another object (rObj) and the values of each.
Equality comparisons include String, Number, Boolean, Date or set custom comparison with options.compare by path Each element or key in an Array or literal/plain Object is evaluated (unless options.stopAt set for path)

Kind: global function

Param Type Description
lObj Any
rObj Any
path String | undefined Path to object attribute in dot notation
options GetDiffsOptions | undefined

Example

// returns [{path: 'a', lObj: 3, rObj: undefined}]
 getDiffs({a: 5}, {c: 22})

Example

// returns [{path: 'a.b', lObj: 3, rObj: 5}, ]
  getDiffs({a: {b: 3}}, {a: {b: 5}})

Example

// returns [{path: 'a[0].b.c', lObj: 5, rObj: 7}, ]
  getDiffs({a: [{b: {c: 5}}]}, {a: [{b: {c: 7}}]})

Example

// returns [{path: 'a.b', lObj: {c: 8}, rObj: {c: 7}}, ]
  getDiffs({a: {b: {c: 8}}}, {a: {b: {c: 7}}}, undefined, {stopAt: {"a.b": true}})

Example

// returns []  (no Diffs because of compare function at a path )
  getDiffs({a: 1}, {a: '1'}, undefined, {compare: {"a": (lObj, rObj) => lObj + '' === rObj}})

Diff : Object

Kind: global typedef

Param Type Description
path String The dot notation path to the property with diff
lObj Any The object or value of the left object compared
rObj Any The object or value of the right object compared

GetDiffsOptions : Object

Kind: global typedef

Param Type Description
stopAt Object | undefined Object with paths as keys (value='true') where those paths will not be descended; only to determine if there is a difference
compare Object | undefined Object with paths as keys and value of a function which is to be used to determine if diff a that path; function takes 2 parameters: lObj and rObj and returns true if they match (no diff). path here can either be a absolute path (eg a[0].board.width or a deepest path node (eg width)

About

Basic comparison of objects and arrays to get differences by path

Resources

License

Stars

Watchers

Forks

Packages

No packages published