Runtime configuration facade returned by import config from 'config'. Exposes strongly typed getters while still allowing legacy direct property access used throughout the code base.

interface ConfigModule {
    accountRequests?: {
        emailCooldownHours: number;
        enabled: boolean;
        rateLimitPerIP: number;
        rateLimitWindowHours: number;
        retentionDays: number;
    };
    adapterTimeout: number;
    adapterUserAgent: string;
    adminEmail: string;
    defaultLocale?: LocaleCode;
    devPort: number;
    email?: {
        enabled: boolean;
        mailgun: { apiKey: string; domain: string; from: string; url: string };
        provider: string;
    };
    forceHTTPS?: boolean;
    frontPageTeamBlog: string;
    frontPageTeamBlogKey: string;
    https: HTTPSConfig;
    irc: IRCConfig;
    logger: LoggerFormat;
    maintenanceMode: boolean;
    passwordReset?: {
        cooldownHours: number;
        rateLimitPerIP: number;
        tokenExpirationHours: number;
    };
    postgres: PostgresConfig;
    qualifiedURL: string;
    questionCaptcha: QuestionCaptchaConfig;
    requireInviteLinks: boolean;
    search: SearchConfig;
    sessionCookieDuration: number;
    sessionSecret: string;
    uploadMaxSize: number;
    uploadTempDir: string;
    util?: { cloneDeep<T>(value: T): T; toObject(): AppConfig };
    webHooks: WebHookTargets;
    get<T extends keyof AppConfig>(key: T): AppConfig[T];
    get<T = unknown>(key: string): T;
    has(key: keyof AppConfig): boolean;
    [key: string]: unknown;
}

Hierarchy (View Summary)

Indexable

  • [key: string]: unknown

Properties

accountRequests?: {
    emailCooldownHours: number;
    enabled: boolean;
    rateLimitPerIP: number;
    rateLimitWindowHours: number;
    retentionDays: number;
}
adapterTimeout: number
adapterUserAgent: string
adminEmail: string
defaultLocale?: LocaleCode
devPort: number
email?: {
    enabled: boolean;
    mailgun: { apiKey: string; domain: string; from: string; url: string };
    provider: string;
}
forceHTTPS?: boolean
frontPageTeamBlog: string
frontPageTeamBlogKey: string
logger: LoggerFormat
maintenanceMode: boolean
passwordReset?: {
    cooldownHours: number;
    rateLimitPerIP: number;
    tokenExpirationHours: number;
}
postgres: PostgresConfig
qualifiedURL: string
questionCaptcha: QuestionCaptchaConfig
requireInviteLinks: boolean
search: SearchConfig
sessionCookieDuration: number
sessionSecret: string
uploadMaxSize: number
uploadTempDir: string
util?: { cloneDeep<T>(value: T): T; toObject(): AppConfig }
webHooks: WebHookTargets

Methods