forked from OpenWF/SpaceNinjaServer
chore: automatically remove deleted options from config.json (#2689)
Reviewed-on: OpenWF/SpaceNinjaServer#2689 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
parent
71d0c140ae
commit
895e76b45e
@ -4,7 +4,7 @@ import { repoDir } from "@/src/helpers/pathHelper";
|
||||
import { args } from "@/src/helpers/commandLineArguments";
|
||||
import { Inbox } from "@/src/models/inboxModel";
|
||||
|
||||
export interface IConfig {
|
||||
export interface IConfig extends IConfigRemovedOptions {
|
||||
mongodbUrl: string;
|
||||
logger: {
|
||||
files: boolean;
|
||||
@ -92,6 +92,41 @@ export interface IConfig {
|
||||
};
|
||||
}
|
||||
|
||||
export const configRemovedOptionsKeys = [
|
||||
"infiniteCredits",
|
||||
"infinitePlatinum",
|
||||
"infiniteEndo",
|
||||
"infiniteRegalAya",
|
||||
"infiniteHelminthMaterials",
|
||||
"claimingBlueprintRefundsIngredients",
|
||||
"dontSubtractPurchaseCreditCost",
|
||||
"dontSubtractPurchasePlatinumCost",
|
||||
"dontSubtractPurchaseItemCost",
|
||||
"dontSubtractPurchaseStandingCost",
|
||||
"dontSubtractVoidTraces",
|
||||
"dontSubtractConsumables",
|
||||
"universalPolarityEverywhere",
|
||||
"unlockDoubleCapacityPotatoesEverywhere",
|
||||
"unlockExilusEverywhere",
|
||||
"unlockArcanesEverywhere",
|
||||
"noDailyStandingLimits",
|
||||
"noDailyFocusLimit",
|
||||
"noArgonCrystalDecay",
|
||||
"noMasteryRankUpCooldown",
|
||||
"noVendorPurchaseLimits",
|
||||
"noDeathMarks",
|
||||
"noKimCooldowns",
|
||||
"syndicateMissionsRepeatable",
|
||||
"instantFinishRivenChallenge",
|
||||
"instantResourceExtractorDrones",
|
||||
"noResourceExtractorDronesDamage",
|
||||
"skipClanKeyCrafting"
|
||||
] as const;
|
||||
|
||||
type IConfigRemovedOptions = {
|
||||
[K in (typeof configRemovedOptionsKeys)[number]]?: boolean;
|
||||
};
|
||||
|
||||
export const configPath = path.join(repoDir, args.configPath ?? "config.json");
|
||||
|
||||
export const config: IConfig = {
|
||||
|
||||
@ -1,6 +1,12 @@
|
||||
import chokidar from "chokidar";
|
||||
import { logger } from "@/src/utils/logger";
|
||||
import { config, configPath, loadConfig, syncConfigWithDatabase } from "@/src/services/configService";
|
||||
import {
|
||||
config,
|
||||
configPath,
|
||||
configRemovedOptionsKeys,
|
||||
loadConfig,
|
||||
syncConfigWithDatabase
|
||||
} from "@/src/services/configService";
|
||||
import { saveConfig, shouldReloadConfig } from "@/src/services/configWriterService";
|
||||
import { getWebPorts, startWebServer, stopWebServer } from "@/src/services/webService";
|
||||
import { sendWsBroadcast } from "@/src/services/wsService";
|
||||
@ -34,6 +40,13 @@ chokidar.watch(configPath).on("change", () => {
|
||||
|
||||
export const validateConfig = (): void => {
|
||||
let modified = false;
|
||||
for (const key of configRemovedOptionsKeys) {
|
||||
if (config[key] !== undefined) {
|
||||
logger.debug(`Spotted removed option ${key} with value ${config[key]} in config.json.`);
|
||||
delete config[key];
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
if (config.administratorNames) {
|
||||
if (!Array.isArray(config.administratorNames)) {
|
||||
config.administratorNames = [config.administratorNames];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user