diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.ts | 29 | 
1 files changed, 25 insertions, 4 deletions
diff --git a/src/lib/config.ts b/src/lib/config.ts index 93c04df..1029be9 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -14,6 +14,7 @@ interface GathioConfig {          port: string;          email: string;          site_name: string; +        delete_after_days: number | null;          is_federated: boolean;          email_logo_url: string;          show_kofi: boolean; @@ -32,7 +33,7 @@ interface GathioConfig {      sendgrid?: {          api_key: string;      }; -    static_pages: StaticPage[]; +    static_pages?: StaticPage[];  }  interface FrontendConfig { @@ -42,10 +43,27 @@ interface FrontendConfig {      emailLogoUrl: string;      showKofi: boolean;      showInstanceInformation: boolean; -    staticPages: StaticPage[]; +    staticPages?: StaticPage[];      version: string;  } +const defaultConfig: GathioConfig = { +    general: { +        domain: "localhost:3000", +        email: "contact@example.com", +        port: "3000", +        site_name: "gathio", +        is_federated: true, +        delete_after_days: 7, +        email_logo_url: "", +        show_kofi: false, +        mail_service: "nodemailer", +    }, +    database: { +        mongodb_url: "mongodb://localhost:27017/gathio", +    }, +}; +  export const frontendConfig = (): FrontendConfig => {      const config = getConfig();      return { @@ -54,7 +72,7 @@ export const frontendConfig = (): FrontendConfig => {          isFederated: config.general.is_federated,          emailLogoUrl: config.general.email_logo_url,          showKofi: config.general.show_kofi, -        showInstanceInformation: config.static_pages?.length > 0, +        showInstanceInformation: !!config.static_pages?.length,          staticPages: config.static_pages,          version: process.env.npm_package_version || "unknown",      }; @@ -67,7 +85,10 @@ export const getConfig = (): GathioConfig => {          const config = toml.parse(              fs.readFileSync("./config/config.toml", "utf-8"),          ) as GathioConfig; -        return config; +        return { +            ...defaultConfig, +            ...config, +        };      } catch {          exitWithError(              "Configuration file not found! Have you renamed './config/config-example.toml' to './config/config.toml'?",  | 
