1.0.5 • Published 6 years ago

deep-defaults v1.0.5

Weekly downloads
12,938
License
MIT
Repository
github
Last release
6 years ago

deep-defaults

NPM

Recursive version of _.defaults.

var deepDefaults = require('deep-defaults');

console.log(JSON.stringify(deepDefaults(
    {"a":1}, 
    {"a":5,"b":10})));
    // {"a":1,"b":10} 

console.log(JSON.stringify(deepDefaults(
    {"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5}, 
    {"a":{"k":7},"d":{"i":8}}))); 
    // {"a":{"b":1,"c":2,"k":7},"d":{"e":3,"f":4,"i":8},"g":5} 

Examples

  • deepDefaults({}, {}) == {}
  • deepDefaults({}, undefined) == {}
  • deepDefaults({}, null) == {}
  • deepDefaults(undefined, undefined) == undefined
  • deepDefaults(undefined, {}) == undefined
  • deepDefaults(null, {}) == null
  • deepDefaults(undefined, {"a":1}) == undefined
  • deepDefaults(null, {"a":1}) == null
  • deepDefaults({}, {"a":1}) == {"a":1}
  • deepDefaults({"a":1}, {"a":1}) == {"a":1}
  • deepDefaults({"a":2}, {"a":1}) == {"a":2}
  • deepDefaults({"a":2}, {"a":null}) == {"a":2}
  • deepDefaults({"a":2}, {}) == {"a":2}
  • deepDefaults({"a":2}, {"a":{}}) == {"a":2}
  • deepDefaults({"a":{}}, {"a":1}) == {"a":{}}
  • deepDefaults({"a":null}, {"a":1}) == {"a":null}
  • deepDefaults({}, {"a":1}) == {"a":1}
  • deepDefaults({"a":2,"b":1}, {"a":1}) == {"a":2,"b":1}
  • deepDefaults({"a":2,"b":1}, {"b":2}) == {"a":2,"b":1}
  • deepDefaults({"a":2,"b":1}, {"a":1,"b":2}) == {"a":2,"b":1}
  • deepDefaults({"a":2,"b":1}, {"a":1,"b":2,"c":3}) == {"a":2,"b":1,"c":3}
  • deepDefaults({"a":{"b":1}}, {}) == {"a":{"b":1}}
  • deepDefaults({"a":{"b":1}}, {"a":1}) == {"a":{"b":1}}
  • deepDefaults({"a":{"b":1}}, {"b":2}) == {"a":{"b":1},"b":2}
  • deepDefaults({"a":{"b":1,"c":3}}, {"b":2}) == {"a":{"b":1,"c":3},"b":2}
  • deepDefaults({"a":{"b":1,"c":3}}, {"a":{}}) == {"a":{"b":1,"c":3}}
  • deepDefaults({"a":{"b":1,"c":3}}, {"a":{"b":2}}) == {"a":{"b":1,"c":3}}
  • deepDefaults({"a":{"b":1,"c":3}}, {"a":{"d":4}}) == {"a":{"b":1,"c":3,"d":4}}
  • deepDefaults({"a":{}}, {"a":{"d":4}}) == {"a":{"d":4}}
  • deepDefaults({"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5}, {}) == {"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5}
  • deepDefaults({"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5}, {"h":6}) == {"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5,"h":6}
  • deepDefaults({"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5}, {"a":6}) == {"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5}
  • deepDefaults({"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5}, {"a":{"k":7}}) == {"a":{"b":1,"c":2,"k":7},"d":{"e":3,"f":4},"g":5}
  • deepDefaults({"a":{"b":1,"c":2},"d":{"e":3,"f":4},"g":5}, {"a":{"k":7},"d":{"i":8}}) == {"a":{"b":1,"c":2,"k":7},"d":{"e":3,"f":4,"i":8},"g":5}
  • deepDefaults({"foo":"foo"}, {"foo":"foo"}) == {"foo":"foo"}
  • deepDefaults({"foo":"foo"}, {}) == {"foo":"foo"}
  • deepDefaults({}, {"foo":"foo"}) == {"foo":"foo"}
  • deepDefaults({"foo":7}, {"foo":"foo"}) == {"foo":7}
  • deepDefaults({"foo":"foo"}, {"foo":7}) == {"foo":"foo"}
  • deepDefaults({"foo":{}}, {"foo":"foo"}) == {"foo":{}}
  • deepDefaults({"foo":{"bar":7}}, {"foo":"foo"}) == {"foo":{"bar":7}}
  • deepDefaults({"foo":{"bar":"foobar"}}, {"foo":"barfoo"}) == {"foo":{"bar":"foobar"}}
  • deepDefaults({"foo":"barfoo"}, {"foo":{"bar":"foobar"}}) == {"foo":"barfoo"}
  • deepDefaults({}, {"foo":4,5,6}) == {"foo":4,5,6}
  • deepDefaults({"foo":1,2,3}, {"foo":4,5,6}) == {"foo":1,2,3}
  • deepDefaults({"foo":1,2,3}, {"foo":"bar"}) == {"foo":1,2,3}
  • deepDefaults({"foo":1,2,3}, {"foo":1,2,3,4}) == {"foo":1,2,3}