@75lb/deep-merge
Deep-merge the values of one object structure into another
Last updated 3 years ago by 75lb .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install @75lb/deep-merge 
SYNC missed versions from official npm registry.

view on npm npm module downloads Gihub repo dependents Gihub package dependents Node.js CI Coverage Status js-standard-style

@75lb/deep-merge

Deep-merge the values of one object structure into another. Similar to Object.assign() except it processes the full depth of the object structure, not only the top level. Useful for merging config.

Synopsis

import deepMerge from '@75lb/deep-merge'

Simple

Typical example merging four objects. Input:

deepMerge(
  { port: 8000, data: { animal: 'cow' } },
  { stack: ['one'] },
  { stack: ['two'], help: true },
  { data: { animal: 'bat', metal: 'iron' } }
)

Result

{
  port: 8000,
  stack: ['two'],
  help: true,
  data: { animal: 'bat', metal: 'iron' }
}

Arrays

Empty arrays are ignored and not merged in. Input:

deepMerge(
  { stack: ['one'] },
  { stack: [] }
)

Result:

{ stack: ['one'] }

However, if the later array contains one or more values the later array will replace the original:

deepMerge(
  { stack: ['one'] },
  { stack: ['two'] }
)

Result:

{ stack: ['two'] }

Load anywhere

This library is compatible with Node.js, the Web and any style of module loader. It can be loaded anywhere, natively without transpilation.

Within a Node.js ECMAScript Module:

import deepMerge from '@75lb/deep-merge'

Within an modern browser ECMAScript Module:

import deepMerge from './node_modules/@75lb/deep-merge/dist/index.mjs'

© 2021 Lloyd Brookes <75pound@gmail.com>.

Tested by test-runner. Documented by jsdoc-to-markdown.

Current Tags

  • 1.1.1                                ...           latest (3 years ago)

3 Versions

  • 1.1.1                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (2)
Dev Dependencies (6)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |