export function merge(target: any, source: any) { Object.keys(source).forEach((key) => { if ( source.hasOwnProperty(key) // Check if the property is not inherited && source[key] && typeof source[key] === 'object' || key === '__proto__' || key === 'constructor' ) { merge((target[key] = target[key] || {}), source[key]); return; } target[key] = source[key]; }); }