From 9683aa6d442865c10ff22aa7784a1d252fed243b Mon Sep 17 00:00:00 2001 From: Mathias Schopmans Date: Wed, 26 Mar 2025 10:10:52 +0100 Subject: [PATCH] fix: define user's config as DeepPartial --- src/lib/config.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/config.ts b/src/lib/config.ts index 45b9fa1..fb7ffe4 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -1,8 +1,17 @@ import defaultConfig from "../../data/config.default.json"; import _userConfig from "../../data/config.json"; -const userConfig = _userConfig as typeof defaultConfig; -const config = { ...defaultConfig, ...userConfig }; +type DeepPartial = T extends object + ? { + [P in keyof T]?: DeepPartial; + } + : T; + +type Config = typeof defaultConfig; +type UserConfig = DeepPartial; + +const userConfig = _userConfig as UserConfig; +const config = { ...defaultConfig, ...userConfig } as Config; if (userConfig.colors) config.colors = { ...defaultConfig.colors, ...userConfig.colors };