diff --git a/apps/api/src/utils/startup.ts b/apps/api/src/utils/startup.ts index 98fea8f..49f901e 100644 --- a/apps/api/src/utils/startup.ts +++ b/apps/api/src/utils/startup.ts @@ -8,30 +8,48 @@ declare module 'bun' { CLERK_WEBHOOK_SECRET: string CLERK_SECRET_KEY: string CLERK_PUBLISHABLE_KEY: string + BETTERSTACK_LOG_TOKEN: string } } +const TEST_VARIABLES = ['POSTGRES_URL'] + +const DEVELOPMENT_VARIABLES = [ + ...TEST_VARIABLES, + 'CLERK_WEBHOOK_SECRET', + 'CLERK_SECRET_KEY', + 'CLERK_PUBLISHABLE_KEY', +] + +const PRODUCTION_VARIABLES = [...DEVELOPMENT_VARIABLES, 'BETTERSTACK_LOG_TOKEN'] + export const startup = async () => { if (import.meta.env.NODE_ENV === 'test') { - if (!import.meta.env.POSTGRES_URL) { - logger.error('Env Var POSTGRES_URL is missing!') - process.exit(0) - } - return + TEST_VARIABLES.map((key) => { + if (!import.meta.env[key]) { + logger.error(`Env Var ${key} is missing!`) + process.exit(0) + } + }) + } + + if (import.meta.env.NODE_ENV === 'development') { + DEVELOPMENT_VARIABLES.map((key) => { + if (!import.meta.env[key]) { + logger.error(`Env Var ${key} is missing!`) + process.exit(0) + } + }) + } + + if (import.meta.env.NODE_ENV === 'production') { + PRODUCTION_VARIABLES.map((key) => { + if (!import.meta.env[key]) { + logger.error(`Env Var ${key} is missing!`) + process.exit(0) + } + }) } - const keys = [ - 'POSTGRES_URL', - 'CLERK_WEBHOOK_SECRET', - 'CLERK_SECRET_KEY', - 'CLERK_PUBLISHABLE_KEY', - 'BETTERSTACK_LOG_TOKEN', - ] - keys.map((key) => { - if (!import.meta.env[key]) { - logger.error(`Env Var ${key} is missing!`) - process.exit(0) - } - }) if (import.meta.env.NODE_ENV === 'production') { await migrateDatabase('migrations')