Neptune's Personal Maid

    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)

    Keywords

    none

    Install

    npm i ldb-change

    DownloadsWeekly Downloads

    23

    Version

    4.0.0

    License

    MIT

    Unpacked Size

    85.3 kB

    Total Files

    18

    Last publish

    Collaborators

    • tonybranfort