chore: automatically remove deleted options from config.json #2689
@ -4,7 +4,7 @@ import { repoDir } from "@/src/helpers/pathHelper";
|
|||||||
import { args } from "@/src/helpers/commandLineArguments";
|
import { args } from "@/src/helpers/commandLineArguments";
|
||||||
import { Inbox } from "@/src/models/inboxModel";
|
import { Inbox } from "@/src/models/inboxModel";
|
||||||
|
|
||||||
export interface IConfig {
|
export interface IConfig extends IConfigRemovedOptions {
|
||||||
mongodbUrl: string;
|
mongodbUrl: string;
|
||||||
logger: {
|
logger: {
|
||||||
files: boolean;
|
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 configPath = path.join(repoDir, args.configPath ?? "config.json");
|
||||||
|
|
||||||
export const config: IConfig = {
|
export const config: IConfig = {
|
||||||
|
|||||||
@ -1,6 +1,12 @@
|
|||||||
import chokidar from "chokidar";
|
import chokidar from "chokidar";
|
||||||
import { logger } from "@/src/utils/logger";
|
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 { saveConfig, shouldReloadConfig } from "@/src/services/configWriterService";
|
||||||
import { getWebPorts, startWebServer, stopWebServer } from "@/src/services/webService";
|
import { getWebPorts, startWebServer, stopWebServer } from "@/src/services/webService";
|
||||||
import { sendWsBroadcast } from "@/src/services/wsService";
|
import { sendWsBroadcast } from "@/src/services/wsService";
|
||||||
@ -34,6 +40,13 @@ chokidar.watch(configPath).on("change", () => {
|
|||||||
|
|
||||||
export const validateConfig = (): void => {
|
export const validateConfig = (): void => {
|
||||||
let modified = false;
|
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 (config.administratorNames) {
|
||||||
if (!Array.isArray(config.administratorNames)) {
|
if (!Array.isArray(config.administratorNames)) {
|
||||||
config.administratorNames = [config.administratorNames];
|
config.administratorNames = [config.administratorNames];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user