3.0.0 • Published 7 years ago
extend-deep-immutable v3.0.0
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
orcmnjs.uniqueid/es5/extendDeepImmutable
- ES6
extend-deep-immutable/es6/extendDeepImmutable
- UMD
extend-deep-immutable/es5-umd/extendDeepImmutable
(global:window.extendDeepImmutable
)