ldb-change
TypeScript icon, indicating that this package has built-in type declarations

4.0.0 • Public • Published

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)

Dependents (3)

Package Sidebar

Install

npm i ldb-change

Weekly Downloads

1

Version

4.0.0

License

MIT

Unpacked Size

85.3 kB

Total Files

18

Last publish

Collaborators

  • tonybranfort