Skip to content

Repository files navigation

@magic/deep

Work with deeply nested objects and arrays.

NPM versionLinux Build StatusWindows Build StatusCoverage StatusGreenkeeper badgeKnown Vulnerabilities

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

Currently implemented:

deep.equal
// test equalitydeep.equal(['shallow',['deep']],['shallow',['deep']])// true// alias// deep.equals, deep.eq
deep.different
// test differencedeep.different(['shallow',['deep']],['shallow',['deep']])// false// alias// deep.diff
deep.flatten
// flatten a deeply nested arraydeep.flatten(['shallow',['deep']])// ['shallow', 'deep']
deep.loop
// apply function addconstadd=e=>e+1// for each itemconstitems=[1,2,[3]]// using a deeply nested arraydeep.loop(add,items)// ordeep.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.1.13

update dependencies

0.1.14

update dependencies

0.1.15

update dependencies

0.1.16

update dependencies

0.1.17
  • add typescript types
  • update dependencies
0.1.18
  • actually add types to pkg files array
0.0.19
  • update dependencies
0.0.20
  • update dependencies
0.0.21
  • update dependencies
0.0.22
  • update dependencies
0.0.23 - unreleased

...

About

work with deeply nested objects and arrays

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages