jalik / js-extend

A utility to merge objects.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@jalik/extend

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

A utility to merge flat objects.

Warning: This library is doing a "flat merge", so if you need to merge deep objects, use the following library instead: @jalik/deep-extend

Introduction

Useful to merge several objects into one, for creating a configuration based on default parameters for example.

Installing

npm i -P @jalik/extend
yarn add @jalik/extend

Merging objects

In this example, all objects are merged into the first object, so the first object is modified, if you don't want to modify the object, pass en empty object {} as the first argument.

Note that objects are merged based on their order, so the 2nd object is merged in the first, then the 3rd is merged in the first, and so on...

import extend from "@jalik/extend";

const coldColors = {
  blue: "#0000FF",
  cyan: "#00FFFF",
  green: "#00FF00"
};

const hotColors = {
  yellow: "#FFFF00",
  orange: "#FFAA00",
  red: "#FF0000"
};

const result = extend({}, coldColors, hotColors);

The result:

{
  "blue": "#0000FF",
  "cyan": "#00FFFF",
  "green": "#00FF00",
  "yellow": "#FFFF00",
  "orange": "#FFAA00",
  "red": "#FF0000"
}

Merging arrays

Several arrays can be merged easily. Note that undefined values are ignored when merging.

import extend from "@jalik/extend";

const a = [0, 0, 0, 7];
const b = [0, 0, 3];
const c = [1, 3, undefined, undefined];

const result = extend([], a, b, c);

The result:

[1, 3, 3, 7]

Merging arrays into object

You can easily convert an array to an object with the extend method.

import extend from "@jalik/extend";

const numbers = [1, 3, 3, 7];
const object = { length: numbers.length };

const result = extend({}, object, numbers);

The result:

{
  "length": 4,
  "0": 1,
  "1": 3,
  "2": 3,
  "3": 7
}

Changelog

History of releases is in the changelog.

License

The code is released under the MIT License.

About

A utility to merge objects.

License:MIT License


Languages

Language:TypeScript 100.0%