| import { z } from 'zod'; |
|
|
| const envSchema = z.object({ |
| NODE_ENV: z.enum(['development', 'production', 'test']).default('development'), |
| PORT: z.string().default('4000'), |
| DATABASE_URL: z.string(), |
| REDIS_URL: z.string().default('redis://localhost:6379'), |
| JWT_SECRET: z.string().min(32), |
| JWT_REFRESH_SECRET: z.string().min(32), |
| JWT_ACCESS_EXPIRY: z.string().default('15m'), |
| JWT_REFRESH_EXPIRY: z.string().default('7d'), |
| AI_SERVICE_URL: z.string().default('http://localhost:8000'), |
| AI_SERVICE_KEY: z.string().default('internal-dev-key'), |
| AWS_REGION: z.string().default('us-east-1'), |
| S3_BUCKET_NAME: z.string().default('hr-resumes'), |
| S3_ENDPOINT: z.string().optional(), |
| OPENAI_API_KEY: z.string().optional(), |
| GOOGLE_CLIENT_ID: z.string().optional(), |
| GOOGLE_CLIENT_SECRET: z.string().optional(), |
| }); |
|
|
| const parsed = envSchema.safeParse(process.env); |
|
|
| if (!parsed.success) { |
| console.error('Invalid environment variables:', parsed.error.format()); |
| process.exit(1); |
| } |
|
|
| export const config = parsed.data; |
|
|