From a25aff0e24e230588b4eadbc4457cbb76a0e1afa Mon Sep 17 00:00:00 2001 From: creations Date: Mon, 12 May 2025 18:49:53 -0400 Subject: [PATCH] forgot to stage --- config/environment.ts | 60 ++++++++++++++++++++++++++++++++++++------- src/index.ts | 1 - 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/config/environment.ts b/config/environment.ts index dec203b..a4da0eb 100644 --- a/config/environment.ts +++ b/config/environment.ts @@ -1,27 +1,69 @@ -export const environment: Environment = { +import { resolve } from "node:path"; +import { logger } from "@creations.works/logger"; + +const environment: Environment = { port: Number.parseInt(process.env.PORT || "8080", 10), host: process.env.HOST || "0.0.0.0", development: process.env.NODE_ENV === "development" || process.argv.includes("--dev"), }; -export const redisTtl: number = process.env.REDIS_TTL +const redisTtl: number = process.env.REDIS_TTL ? Number.parseInt(process.env.REDIS_TTL, 10) : 60 * 60 * 1; // 1 hour -export const lanyardConfig: LanyardConfig = { +const lanyardConfig: LanyardConfig = { userId: process.env.LANYARD_USER_ID || "", - instance: process.env.LANYARD_INSTANCE || "https://api.lanyard.rest", + instance: process.env.LANYARD_INSTANCE || "", }; -export const reviewDb = { +const reviewDb = { enabled: process.env.REVIEW_DB === "true" || process.env.REVIEW_DB === "1", url: "https://manti.vendicated.dev/api/reviewdb", }; -export const badgeApi: string | null = process.env.BADGE_API_URL || null; -export const steamGridDbKey: string | undefined = - process.env.STEAMGRIDDB_API_KEY; +const badgeApi: string | null = process.env.BADGE_API_URL || null; +const steamGridDbKey: string | undefined = process.env.STEAMGRIDDB_API_KEY; -export const plausibleScript: string | null = +const plausibleScript: string | null = process.env.PLAUSIBLE_SCRIPT_HTML?.trim() || null; + +const robotstxtPath: string | null = process.env.ROBOTS_FILE + ? resolve(process.env.ROBOTS_FILE) + : null; + +function verifyRequiredVariables(): void { + const requiredVariables = [ + "HOST", + "PORT", + + "LANYARD_USER_ID", + "LANYARD_INSTANCE", + ]; + + let hasError = false; + + for (const key of requiredVariables) { + const value = process.env[key]; + if (value === undefined || value.trim() === "") { + logger.error(`Missing or empty environment variable: ${key}`); + hasError = true; + } + } + + if (hasError) { + process.exit(1); + } +} + +export { + environment, + lanyardConfig, + redisTtl, + reviewDb, + badgeApi, + steamGridDbKey, + plausibleScript, + robotstxtPath, + verifyRequiredVariables, +}; diff --git a/src/index.ts b/src/index.ts index 89b3704..692b84e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,6 @@ import { logger } from "@creations.works/logger"; async function main(): Promise { verifyRequiredVariables(); - serverHandler.initialize(); }