plplpl183's picture
Upload apps/api/src/config/index.ts
dae482b verified
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;