defaults

v3.0.0
Easily handle defaults for your options
config defaults options object merge assign properties deep

defaults

Easily handle defaults for your options

Install

npm install defaults

Usage

import defaults from 'defaults';

const calculate = options => {
    options = defaults(options, {
        timeout: {
            before: 100,
            after: 100
        }
    });

    console.log(options);
    //=> {timeout: {before: 200, after: 100}}

    // …
}

// …

calculate({timeout: {before: 200}});

API

defaults(options, defaultOptions?)

Deeply merges the given options with the specified defaults and returns a new object.

The given parameters are deep-cloned and never mutated.

options

Type: object

The user-provided options.

If the value is not a plain object, a new plain object will be used instead.

defaultOptions

Type: object | undefined

The default options to use when a value is not provided in the options object.

FAQ

Why use this over object-spread?

  • Does not overwrite options if they are not defined in the options object
  • Supports deep merging of objects
  • Provides protection against prototype pollution attacks
npm i defaults

Metadata

  • MIT
  • >=18
  • Unknown
  • released 10/18/2023

Downloads

Maintainers