normalize-defaults

Normalize missing first-level keys/values in an object with defaults

Usage no npm install needed!

<script type="module">
  import normalizeDefaults from 'https://cdn.skypack.dev/normalize-defaults';
</script>

README

normalize-defaults

Normalize missing first-level keys/values in an object with those from defaults.

npm ver travis ci license

Examples

  • Example 1
var normalize = require('normalize-defaults');

var obj = { 
    rhinos: null, 
    wolves: 15,
    tigers: 42
};

var defaults = { 
    rhinos: 8,
    lions: 0,
    wolves: 14
};

obj = normalize(obj, defaults);

console.log(obj); 
// { rhinos: 8, wolves: 15, tigers: 42, lions: 0 }
  • Example 2
var normalize = require('normalize-defaults');

var obj = {};
var defaults = {
    arr: []
};

obj = normalize(obj, defaults);

obj.arr.push(5);

console.log(obj.arr); // [5]
console.log(defaults.arr); // [] - defaults' objects remains unaffected
  • Example 3
var normalize = require('normalize-defaults');

var obj = null;
var defaults = {
    a: 42
};

obj = normalize(obj, defaults);

console.log(obj.a); // 42

Changelog

v0.1.4

  • If the object to normalize is null, use the default object entirely
  • The previous change now requires that the return value be used, since the null first argument cannot be modified.

License

MIT