From 8c6f7d8849bb5b23a56ba13630c32938b7703769 Mon Sep 17 00:00:00 2001 From: arsam Date: Fri, 18 Sep 2026 23:09:13 +0330 Subject: [PATCH] Import source: backend/src/config/env Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality. --- backend/src/config/env.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 backend/src/config/env.ts diff --git a/backend/src/config/env.ts b/backend/src/config/env.ts new file mode 100644 index 0000000..ef3dc77 --- /dev/null +++ b/backend/src/config/env.ts @@ -0,0 +1,23 @@ +import { z } from 'zod'; +import dotenv from 'dotenv'; + +dotenv.config(); + +const envSchema = z.object({ + NODE_ENV: z.enum(['development', 'production', 'test']).default('development'), + PORT: z.coerce.number().default(4000), + HOST: z.string().default('0.0.0.0'), + DATABASE_URL: z.string().url(), + REDIS_URL: z.string().url().default('redis://localhost:6379'), + JWT_SECRET: z.string().min(32), +}); + +const parsed = envSchema.safeParse(process.env); + +if (!parsed.success) { + console.error('❌ Invalid environment configuration:', parsed.error.format()); + process.exit(1); +} + +export const env = parsed.data; +export type Env = z.infer;