xref: /expo/packages/create-expo/src/utils/obj.ts (revision b7d15820)
1export function deepMerge(target: any, source: any) {
2  if (typeof target !== 'object') {
3    return source;
4  }
5  if (Array.isArray(target) && Array.isArray(source)) {
6    return target.concat(source);
7  }
8  Object.keys(source).forEach((key) => {
9    if (typeof source[key] === 'object' && source[key] !== null) {
10      target[key] = deepMerge(target[key], source[key]);
11    } else {
12      target[key] = source[key];
13    }
14  });
15  return target;
16}
17