diff --git a/src/helpers/settingsHelper.ts b/src/helpers/settingsHelper.ts index c8e27f6..554e0d9 100644 --- a/src/helpers/settingsHelper.ts +++ b/src/helpers/settingsHelper.ts @@ -31,8 +31,13 @@ export default abstract class SettingHelper { email: new EmailConverter(), }; - public static getAllSettings() { - return cloneDeep(this.settings); + public static getAllSettings(): { [key in SettingString]: SettingValueMapping[key] } { + return Object.keys(settingsType).reduce((acc, key) => { + const typedKey = key as SettingString; + //@ts-expect-error + acc[typedKey] = this.getSetting(typedKey); + return acc; + }, {} as { [key in SettingString]: SettingValueMapping[key] }); } /** diff --git a/src/type/settingTypes.ts b/src/type/settingTypes.ts index 568bc64..ff6e728 100644 --- a/src/type/settingTypes.ts +++ b/src/type/settingTypes.ts @@ -50,7 +50,7 @@ export type SettingValueMapping = { // Typsicherer Zugriff auf Settings export type SettingDefinition = { type: T; - default?: string | number | boolean; + default?: string | number | boolean | ms.StringValue; optional?: boolean; min?: T extends "number" | `number/crypt` | `number/rand` ? number : never; };