fix: ensure all default config fields are present in config.yaml

This commit is contained in:
Memory 2025-12-07 13:53:06 +08:00 committed by GitHub
parent 508d7d63c9
commit 392285058e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -9,7 +9,13 @@ let appConfig: IAppConfig // config.yaml
export async function getAppConfig(force = false): Promise<IAppConfig> { export async function getAppConfig(force = false): Promise<IAppConfig> {
if (force || !appConfig) { if (force || !appConfig) {
const data = await readFile(appConfigPath(), 'utf-8') const data = await readFile(appConfigPath(), 'utf-8')
appConfig = parse(data) || defaultConfig const parsedConfig = parse(data)
const mergedConfig = deepMerge({ ...defaultConfig }, parsedConfig || {})
if (JSON.stringify(mergedConfig) !== JSON.stringify(parsedConfig)) {
await writeFile(appConfigPath(), stringify(mergedConfig))
}
appConfig = mergedConfig
} }
if (typeof appConfig !== 'object') appConfig = defaultConfig if (typeof appConfig !== 'object') appConfig = defaultConfig
return appConfig return appConfig