4.0.0 • Published 3 years ago

ldb-change v4.0.0

Weekly downloads
148
License
MIT
Repository
github
Last release
3 years ago

ldb-change

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

Functions

Typedefs

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

ParamTypeDescription
lObjAny
rObjAny
pathString | undefinedPath to object attribute in dot notation
optionsGetDiffsOptions | 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

ParamTypeDescription
pathStringThe dot notation path to the property with diff
lObjAnyThe object or value of the left object compared
rObjAnyThe object or value of the right object compared

GetDiffsOptions : Object

Kind: global typedef

ParamTypeDescription
stopAtObject | undefinedObject with paths as keys (value='true') where those paths will not be descended; only to determine if there is a difference
compareObject | undefinedObject 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)
4.0.0

3 years ago

3.2.0

3 years ago

3.1.0

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.0.2

4 years ago

2.0.1

4 years ago

1.0.0

7 years ago