mirror of
https://github.com/pockethost/pockethost.git
synced 2026-03-20 23:28:55 +00:00
20 lines
500 B
TypeScript
20 lines
500 B
TypeScript
export function mergeConfig<T>(
|
|
defaultConfig: T,
|
|
...partialConfigs: Partial<T>[]
|
|
): T {
|
|
const result: T = { ...defaultConfig }
|
|
|
|
for (const partialConfig of partialConfigs) {
|
|
for (const key in partialConfig) {
|
|
if (Object.prototype.hasOwnProperty.call(partialConfig, key)) {
|
|
const value = partialConfig[key as keyof typeof partialConfig]
|
|
if (value !== undefined) {
|
|
result[key as keyof T] = value as T[keyof T]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|