Closer/server/src/config/env.ts

38 lines
1016 B
TypeScript
Raw Normal View History

import 'dotenv/config'
const requiredEnvVars = ['REVENUECAT_WEBHOOK_SECRET', 'FIREBASE_PROJECT_ID'] as const
type RequiredEnvVar = (typeof requiredEnvVars)[number]
/**
* Validates that all required environment variables are set.
* Throws an error with details if any are missing.
*/
export function validateEnv(): void {
const missing: RequiredEnvVar[] = []
for (const varName of requiredEnvVars) {
const value = process.env[varName]
if (!value || value.trim() === '') {
missing.push(varName)
}
}
if (missing.length > 0) {
const message = missing.map(v => ` - ${v}`).join('\n')
throw new Error(`Missing required environment variables:\n${message}`)
}
}
/**
* Safely retrieves a required environment variable.
* Throws if not set (after validateEnv has been called).
*/
export function getEnv(varName: RequiredEnvVar): string {
const value = process.env[varName]
if (!value) {
throw new Error(`Environment variable ${varName} is not set`)
}
return value
}