const isObject = (obj: any) => obj && typeof obj === 'object' export const deepMerge = (...objects: any[]) => { return objects.reduce((prev, obj) => { for (const key in obj) { if (isObject(prev[key]) && isObject(obj[key])) { prev[key] = deepMerge(prev[key], obj[key]) } else { prev[key] = obj[key] } } return prev }, {}) }