3.0.0 • Published 7 years ago

extend-deep-immutable v3.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 years ago

extend-deep-immutable

Extend one object with another not affecting first one

Installation

npm install --save extend-deep-immutable

Usage

Simple

import extendDeepImmutable from 'extend-deep-immutable';

const a = {a: 1, c: {d:2, c: 4, dd: {a: 1, b: 2, c: [2, 3, 4, 1, 1]}}};
const b = {b: 2, f: 1, c: {d:3, g: 4, dd: {be: 1, b: 3, c: [1, 2, 5, 4]}}};
const c = extendDeepImmutable(a, b);

console.log(a, b, c); // three distinct objects

Multiple extends

import extendDeepImmutable from 'extend-deep-immutable';

const a = {a: 1, c: {d:2, c: 4, dd: {a: 1, b: 2, c: [2, 3, 4, 1, 1]}}};
const b = {b: 2, f: 1, c: {d:3, g: 4, dd: {be: 1, b: 3, c: [1, 2, 5, 4]}}};
const c = {z: 99, c: {y: 10}};
const d = [a, b, c].reduce(extendDeepImmutable);
const e = [b, c].reduce(extendDeepImmutable, a); // same as d
const f = [a, b, c].reduce(extendDeepImmutable, {z: 11});
const g = [a, b, c].reduceRight(extendDeepImmutable); // reverse

console.log(a, b, c, d, e, f, g);
console.log(JSON.stringify(d) === JSON.stringify(e));

Arguments

  • target (object)
  • source (object)

Returned value

  • new object

ES5, ES6, UMD (CommonJS, AMD, global)

  • ES5 extend-deep-immutable or cmnjs.uniqueid/es5/extendDeepImmutable
  • ES6 extend-deep-immutable/es6/extendDeepImmutable
  • UMD extend-deep-immutable/es5-umd/extendDeepImmutable (global: window.extendDeepImmutable)

Changelog

View on github.

3.0.0

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.0.0

7 years ago