From 6e27eea7bbc86e72703888eba6fdc4096b762938 Mon Sep 17 00:00:00 2001 From: Sainan Date: Mon, 23 Dec 2024 19:34:07 +0100 Subject: [PATCH] fix: configService not handling a field being removed from config.json --- src/services/configService.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/services/configService.ts b/src/services/configService.ts index 2a282638..ecc6d359 100644 --- a/src/services/configService.ts +++ b/src/services/configService.ts @@ -14,6 +14,13 @@ fs.watchFile(configPath, () => { amnesia = false; } else { logger.info("Detected a change to config.json, reloading its contents."); + + // Set all values to undefined now so if the new config.json omits some fields that were previously present, it's correct in-memory. + for (const key of Object.keys(config)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access + (config as any)[key] = undefined; + } + Object.assign(config, JSON.parse(fs.readFileSync(configPath, "utf-8"))); } });