Merges default options to the user-given options.
$ npm install set-options --save
Always returns an object. For a key k
, if options
does not have k
as an own property, and defaults
does, defaults[k]
will copied to options
.
var set = require('set-options')
var defaults = {
a: 1
}
function factory (options) {
var config = set(options, defaults)
// `options` and `defaults` will not be ruined after `set()`
console.log(config, config === options, config === defaults)
}
factory()
// {a: 1} false false
factory(undefined)
// {a: 1} false false
factory(null)
// {a: 1} false false
factory(1)
// {a: 1} false false
factory({})
// {a: 1} false false
factory({b: 1})
// {a: 1, b: 1} false false
factory({a: 0})
// {a: 0} false false
- options
Object=
can be undefined. - defaults
Object
not definingdefaults
is silly, since that's the whole purpose of this lib.
set(options, defaults, filter)
let options = set({a: undefined}, {a: 1}, function (value, key, object) {
return key in object
})
options // {a: undefined}
Do something below instead.
options = set(options, defaults)
options.config = set(options.config, default_config)
MIT