4.0.0 • Published 5 years ago
ldb-change v4.0.0
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
| 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) |