import * as Types from "../../types"; import * as TypeHelper from "./TypeHelper"; export function clone(source: T): T { const newObject: T = {}; for (const key of Object.keys(source)) { (newObject)[key] = TypeHelper.isJsonObject(source[key]) ? clone(source[key]) : source[key]; } return newObject; } export function merge(source: T, dest: T): T { const newObject: T = clone(source); for (const key of Object.keys(dest)) { if (newObject[key] === undefined || !TypeHelper.isJsonObject(dest[key])) { (newObject)[key] = dest[key]; continue; } (newObject)[key] = merge(newObject[key], dest[key]); } return newObject; }