1.3.5 • Published 6 years ago
object-assign-merge v1.3.5
var objectAssign = require("object-assign-merge");
var a = { a: 0 };
var b = { a: 1, b: 2 };
var r;
r = objectAssign.assign({ onlyUseToField: true }, a, b);
//{ a: 0 } '---' { a: 1, b: 2 } '---' { a: 1 }
r = objectAssign.assign(a, b);
//{ a: 0 } '---' { a: 1, b: 2 } '---' { a: 1, b: 2 }
r = objectAssign.assign({ hasBuildNewObject: false }, a, b);
//{ a: 1, b: 2 } '---' { a: 1, b: 2 } '---' { a: 1, b: 2 }
r = objectAssign.assign({}, a, b, { c: 3 }, { d: 4 });
//{ a: 1, b: 2 } '---' { a: 1, b: 2 } '---' { a: 1, b: 2, c: 3, d: 4 }
a.arr = [1, 2, 3];
b.arr = [4, 5, 6];
r = objectAssign.assign(a, b);
//{ a: 1, b: 2, arr: [ 1, 2, 3 ] } '---' { a: 1, b: 2, arr: [ 4, 5, 6 ] } '---' { a: 1, b: 2, arr: [ 4, 5, 6 ] }
r = objectAssign.assign({ hasArrayPush: true }, a, b);
//{ a: 1, b: 2, arr: [ 1, 2, 3 ] } '---' { a: 1, b: 2, arr: [ 4, 5, 6 ] } '---' { a: 1, b: 2, arr: [ 1, 2, 3, 4, 5, 6 ] }
r = objectAssign.merge(a, b, { hasArrayPush: false, hasBuildNewObject: true, onlyUseToField: false });
r = objectAssign.assign(a, b);
r = objectAssign.assign({ hasArrayPush: false, hasBuildNewObject: true, onlyUseToField: false }, a, b, {}, {});
console.log(a, "---", b, "---", r);
objectAssign.diff({ a: "a" }, { a: "a" }); //undefined
objectAssign.diff({ a: "a" }, { a: "ab" }); //{"a":{left:"a",right:"ab"}}
objectAssign.diff({ a: "a", b: "b" }, { a: "ab", c: "c" }); //{"a":{left:"a",right:"ab"},"b":{left:"b",right:undefined},"c":{left:undefined,right:"c"}}
objectAssign.diff([1, 2, 3, 5], [1, 2, 4]); //[undefined,undefined,{left:3,right:4},{left:5,right:undefined}]
API
export interface options {
onlyUseToField?: boolean; // default value false
hasBuildNewObject?: boolean; //default value true
hasArrayPush?: boolean; //default value false
}
export function assign(options: options, ...objects: any[]);
export function assign(...objects: any[]);
export function merge(to: any, form: any, options: options);
export function merge(to: any, form: any);