import { SettingData } from '@standardnotes/responses' import { MuteSignInEmailsOption, MuteFailedBackupsEmailsOption, EmailBackupFrequency, ListedAuthorSecretsData, LogSessionUserAgentOption, SettingName, MuteMarketingEmailsOption, } from '@standardnotes/settings' type SettingType = | EmailBackupFrequency | ListedAuthorSecretsData | LogSessionUserAgentOption | MuteFailedBackupsEmailsOption | MuteSignInEmailsOption | MuteMarketingEmailsOption export class SettingsList { private map: Partial> = {} constructor(settings: SettingData[]) { for (const setting of settings) { this.map[setting.name] = setting } } getSettingValue(settingName: SettingName, defaultValue: D): T { const settingData = this.map[settingName.value] return (settingData?.value as unknown as T) || (defaultValue as unknown as T) } }