18 lines
620 B
TypeScript
18 lines
620 B
TypeScript
import { z } from "zod";
|
|
|
|
const envSchema = z.object({
|
|
NODE_ENV: z.enum(["development", "test", "production"]).default("development"),
|
|
DATABASE_URL: z.string().url(),
|
|
NEWSDB_URL: z.string().regex(/^postgresql:\/\//, "Must be a valid PostgreSQL URL"),
|
|
NEWS_API_URL: z.string().url(),
|
|
KEYCLOAK_CLIENT_ID: z.string(),
|
|
KEYCLOAK_CLIENT_SECRET: z.string(),
|
|
KEYCLOAK_REALM: z.string(),
|
|
KEYCLOAK_ISSUER: z.string().url(),
|
|
LEANTIME_TOKEN: z.string(),
|
|
LEANTIME_API_URL: z.string().url(),
|
|
ROCKET_CHAT_TOKEN: z.string(),
|
|
ROCKET_CHAT_USER_ID: z.string(),
|
|
});
|
|
|
|
export const env = envSchema.parse(process.env);
|