bb-plane-fork/apps/live/src/env.ts
sriram veeraghanta 02d0ee3e0f
chore: add copyright (#8584)
* feat: adding new copyright info on all files

* chore: adding CI
2026-01-27 13:54:22 +05:30

42 lines
1.3 KiB
TypeScript

/**
* Copyright (c) 2023-present Plane Software, Inc. and contributors
* SPDX-License-Identifier: AGPL-3.0-only
* See the LICENSE file for details.
*/
import * as dotenv from "@dotenvx/dotenvx";
import { z } from "zod";
dotenv.config();
// Environment variable validation
const envSchema = z.object({
APP_VERSION: z.string().default("1.0.0"),
HOSTNAME: z.string().optional(),
PORT: z.string().default("3000"),
API_BASE_URL: z.string().url("API_BASE_URL must be a valid URL"),
// CORS configuration
CORS_ALLOWED_ORIGINS: z.string().default(""),
// Live running location
LIVE_BASE_PATH: z.string().default("/live"),
// Compression options
COMPRESSION_LEVEL: z.string().default("6").transform(Number),
COMPRESSION_THRESHOLD: z.string().default("5000").transform(Number),
// secret
LIVE_SERVER_SECRET_KEY: z.string(),
// Redis configuration
REDIS_HOST: z.string().optional(),
REDIS_PORT: z.string().default("6379").transform(Number),
REDIS_URL: z.string().optional(),
});
const validateEnv = () => {
const result = envSchema.safeParse(process.env);
if (!result.success) {
console.error("❌ Invalid environment variables:", JSON.stringify(result.error.format(), null, 4));
process.exit(1);
}
return result.data;
};
export const env = validateEnv();