@magic/deep

    0.1.15 • Public • Published

    @magic/deep

    Work with deeply nested objects and arrays.

    NPM version Linux Build Status Windows Build Status Coverage Status Greenkeeper badge Known Vulnerabilities

    install
    npm i --save --save-exact @magic/deep
    import
    // single function
    import { equal, flatten, loop, merge } from '@magic/deep'
    
    // object with all functions
    import deep from '@magic/deep'

    Currently implemented:

    deep.equal
    // test equality
    deep.equal(['shallow', ['deep']], ['shallow', ['deep']])
    // true
    
    // alias
    deep.equals, deep.eq
    deep.different
    // test difference
    deep.different(['shallow', ['deep']], ['shallow', ['deep']])
    // false
    
    // alias
    deep.diff
    deep.flatten
    // flatten a deeply nested array
    deep.flatten(['shallow', ['deep']])
    // ['shallow', 'deep']
    deep.loop
    // apply function add
    const add = e => e + 1
    
    // for each item
    const items = [1, 2, [3]]
    
    // using a deeply nested array
    deep.loop(add, items)
    // or
    deep.loop(items, add)
    // returns [2, 3, [4]]
    deep.merge
    // merge objects and arrays, with infinite recursion if needed.
    // this can be slow...
    
    deep.merge({ obj1Key: { val: 1 } }, { obj2Key: { val: 2 } } )
    
    // { obj1Key: { val: 1}, obj2Key: { val: 2 } }
    
    deep.merge({ key: { val: 1, str: 'test' } }, { key: { val: 2, str: 'overwritten' } })
    
    // { key: { val: 2, str: 'overwritten' } }

    Changelog

    0.1.0

    use ecmascript modules instead of commonjs.

    0.1.1

    • update readme
    • also export deep.eq alias for deep.equal

    0.1.2

    • require node 13.5.0
    • use deep.equal and deep.different from @magic/types

    0.1.3

    bump required node version to 14.2.0

    0.1.4

    update dependencies

    0.1.5

    • bump required node version to 14.15.4
    • update dependencies
    0.1.6
    • merge now checks if o2.hasOwnProperty is a function before using it to check if we should overwrite keys of o1 or not.
    0.1.7

    update @magic/types to avoid circular dependency

    0.1.8
    • update dependencies
    • use @magic/types for all type comparisons
    0.1.9

    update dependencies

    0.1.10

    update dependencies

    0.1.11

    update dependencies

    0.1.12

    update dependencies

    0.0.13

    update dependencies

    0.0.14

    update dependencies

    0.0.15

    update dependencies

    0.0.16 - unreleased

    ...

    Keywords

    none

    Install

    npm i @magic/deep

    DownloadsWeekly Downloads

    473

    Version

    0.1.15

    License

    AGPL-3.0

    Unpacked Size

    40.8 kB

    Total Files

    7

    Last publish

    Collaborators

    • jascha
    • jaeh