@jalik/deep-extend

A utility to merge deep objects.

Usage no npm install needed!

<script type="module">
  import jalikDeepExtend from 'https://cdn.skypack.dev/@jalik/deep-extend';
</script>

README

@jalik/deep-extend

GitHub package.json version Build Status GitHub GitHub last commit GitHub issues npm

A utility to merge deep objects.

Introduction

Use it when you need to merge nested objects.

Merging deep objects

The following code shows how to merge objects without losing values that are not defined in objects to merge.

import deepExtend from "@jalik/deep-extend";

const defaultColors = {
  cold: {
    blue: '#0000FF',
    green: '#00FF00',
  },
  hot: {
    red: '#FF0000',
    yellow: '#FFFF00',
  },
};

const customColors = {
  cold: {
    blue: '#48C2ED',
  },
  hot: {
    yellow: '#E6CB5F',
  },
};

// Merge all colors into a new object.
// The final colors will have custom blue and yellow colors,
// but the other colors will be the default ones.
const result = deepExtend({}, defaultColors, customColors);

The result:

{
  "cold": {
    "blue": "#48C2ED",
    "green": "#00FF00"
  },
  "hot": {
    "red": "#FF0000",
    "yellow": "#E6CB5F"
  }
}

Merging arrays

See below how it is easy to merge arrays recursively.

import deepExtend from "@jalik/deep-extend";

const a = [1, [2, [3]]];
const b = [undefined, [4, [undefined, 5], 6], 7];

const result = deepExtend([], a, b);

The result:

[
  1,
  [
    4,
    [
      3,
      5
    ],
    6
  ],
  7
]

Changelog

History of releases is in the changelog.

License

The code is released under the MIT License.