in GatewayPluginExample/Ux/gulps/gulp-merge-json-in-folders/json-merge.ts [106:134]
private extend(dest: any, sources: any[]): any {
if (!sources || sources.length === 0) {
return dest;
}
for (let i = 0; i < sources.length; i++) {
let src = sources[i];
// Cant extend primitives or null/undefined values. so skip them
if (!this.isObject(src) && !this.isFunction(src)) {
continue;
}
let keys = Object.keys(src);
let ki = keys.length;
while (ki--) {
let srcField = keys[ki];
let srcValue = src[srcField];
let destValue = srcValue;
if (this.isObject(srcValue) && !Array.isArray(srcValue)) {
destValue = {};
this.extend(destValue, [dest[srcField], srcValue]);
}
dest[srcField] = destValue;
}
}
return dest;
}