( base: Record<string, unknown>, override: Record<string, unknown>, )
| 22 | const DEFAULT_CONFIG_CACHE_MS = 1000; |
| 23 | |
| 24 | function deepMerge( |
| 25 | base: Record<string, unknown>, |
| 26 | override: Record<string, unknown>, |
| 27 | ): Record<string, unknown> { |
| 28 | const result = { ...base }; |
| 29 | for (const key of Object.keys(override)) { |
| 30 | const baseVal = base[key]; |
| 31 | const overrideVal = override[key]; |
| 32 | if (isObject(overrideVal) && isObject(baseVal)) { |
| 33 | result[key] = deepMerge(baseVal, overrideVal); |
| 34 | } else if (overrideVal !== undefined) { |
| 35 | result[key] = overrideVal; |
| 36 | } |
| 37 | } |
| 38 | return result; |
| 39 | } |
| 40 | |
| 41 | interface LoadedYamlFile { |
| 42 | value: Record<string, unknown> | null; |
no test coverage detected