diff --git a/src/index.ts b/src/index.ts
index 4f7fc939..f540f96e 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -19,9 +19,13 @@ import mongoose from "mongoose";
return "" + this.toString() + "";
};
const og_stringify = JSON.stringify;
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
- (JSON as any).stringify = (obj: any): string => {
- return og_stringify(obj).split(`"`).join(``).split(`"`).join(``);
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ JSON.stringify = (obj: any, replacer?: any, space?: string | number): string => {
+ return og_stringify(obj, replacer as string[], space)
+ .split(`"`)
+ .join(``)
+ .split(`"`)
+ .join(``);
};
}
diff --git a/src/services/configService.ts b/src/services/configService.ts
index 66c50dda..114eccc9 100644
--- a/src/services/configService.ts
+++ b/src/services/configService.ts
@@ -34,7 +34,7 @@ interface IConfig {
httpsPort?: number;
myIrcAddresses?: string[];
NRS?: string[];
- administratorNames?: string[] | string;
+ administratorNames?: string[];
autoCreateAccount?: boolean;
skipTutorial?: boolean;
skipAllDialogue?: boolean;
@@ -83,10 +83,15 @@ export const updateConfig = async (data: string): Promise => {
Object.assign(config, JSON.parse(data));
};
+export const saveConfig = async (): Promise => {
+ amnesia = true;
+ await fsPromises.writeFile(configPath, JSON.stringify(config, null, 2));
+};
+
export const validateConfig = (): void => {
if (typeof config.administratorNames == "string") {
- logger.warn(
- `"administratorNames" should be an array; please add square brackets: ["${config.administratorNames}"]`
- );
+ logger.info(`Updating config.json to make administratorNames an array.`);
+ config.administratorNames = [config.administratorNames];
+ void saveConfig();
}
};
diff --git a/src/services/loginService.ts b/src/services/loginService.ts
index 099103be..276ebdb7 100644
--- a/src/services/loginService.ts
+++ b/src/services/loginService.ts
@@ -92,13 +92,7 @@ export const getAccountIdForRequest = async (req: Request): Promise => {
};
export const isAdministrator = (account: TAccountDocument): boolean => {
- if (!config.administratorNames) {
- return false;
- }
- if (typeof config.administratorNames == "string") {
- return config.administratorNames == account.DisplayName;
- }
- return !!config.administratorNames.find(x => x == account.DisplayName);
+ return !!config.administratorNames?.find(x => x == account.DisplayName);
};
const platform_magics = [753, 639, 247, 37, 60];