Work with deeply nested objects and arrays.
npm i --save --save-exact @magic/deep// single functionimport{equal,flatten,loop,merge}from'@magic/deep'// object with all functionsimportdeepfrom'@magic/deep'Currently implemented:
// test equalitydeep.equal(['shallow',['deep']],['shallow',['deep']])// true// alias// deep.equals, deep.eq// test differencedeep.different(['shallow',['deep']],['shallow',['deep']])// false// alias// deep.diff// flatten a deeply nested arraydeep.flatten(['shallow',['deep']])// ['shallow', 'deep']// 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]]// 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' }}use ecmascript modules instead of commonjs.
- update readme
- also export deep.eq alias for deep.equal
- require node 13.5.0
- use deep.equal and deep.different from @magic/types
bump required node version to 14.2.0
update dependencies
- bump required node version to 14.15.4
- update dependencies
- merge now checks if o2.hasOwnProperty is a function before using it to check if we should overwrite keys of o1 or not.
update @magic/types to avoid circular dependency
- update dependencies
- use @magic/types for all type comparisons
update dependencies
update dependencies
update dependencies
update dependencies
update dependencies
update dependencies
update dependencies
update dependencies
- add typescript types
- update dependencies
- actually add types to pkg files array
- update dependencies
- update dependencies
- update dependencies
- update dependencies
...