Files
tvone/lib/env.ts
T
2026-04-20 11:39:32 +01:00

27 lines
827 B
TypeScript

import { loadEnvConfig } from "@next/env";
loadEnvConfig(process.cwd());
function getRequiredEnv(name: string): string {
const value = process.env[name];
if (!value) {
throw new Error(`Missing required environment variable: ${name}`);
}
return value;
}
function getOptionalEnv(name: string): string | undefined {
const value = process.env[name];
return value && value.trim().length > 0 ? value : undefined;
}
export const env = {
APP_URL: getRequiredEnv("APP_URL"),
KEYCLOAK_BASE_URL: getRequiredEnv("KEYCLOAK_BASE_URL"),
KEYCLOAK_REALM: getRequiredEnv("KEYCLOAK_REALM"),
KEYCLOAK_CLIENT_ID: getRequiredEnv("KEYCLOAK_CLIENT_ID"),
KEYCLOAK_CLIENT_SECRET: getRequiredEnv("KEYCLOAK_CLIENT_SECRET"),
AUTH_API_URL: getRequiredEnv("AUTH_API_URL"),
COOKIE_DOMAIN: getOptionalEnv("COOKIE_DOMAIN"),
};