(obj: T | undefined)
| 102 | |
| 103 | // Helper function to merge config objects, excluding undefined values |
| 104 | function pickDefined<T extends object>(obj: T | undefined): Partial<T> { |
| 105 | if (!obj) return {}; |
| 106 | return Object.fromEntries( |
| 107 | Object.entries(obj).filter(([, v]) => v !== undefined), |
| 108 | ) as Partial<T>; |
| 109 | } |
| 110 | |
| 111 | // Merge two configuration objects (overrides takes precedence) |
| 112 | function mergeConfig(base: Config, overrides: Config): Config { |