Files
thrilltrack-explorer/lib/env.ts

28 lines
950 B
TypeScript

import { z } from 'zod';
const envSchema = z.object({
NEXT_PUBLIC_DJANGO_API_URL: z.string().url('NEXT_PUBLIC_DJANGO_API_URL must be a valid URL'),
NEXT_PUBLIC_CLOUDFLARE_ACCOUNT_ID: z.string().optional(),
NEXT_PUBLIC_CLOUDFLARE_IMAGE_URL: z.string().url().optional().or(z.literal('')),
});
function validateEnv() {
try {
return envSchema.parse({
NEXT_PUBLIC_DJANGO_API_URL: process.env.NEXT_PUBLIC_DJANGO_API_URL,
NEXT_PUBLIC_CLOUDFLARE_ACCOUNT_ID: process.env.NEXT_PUBLIC_CLOUDFLARE_ACCOUNT_ID,
NEXT_PUBLIC_CLOUDFLARE_IMAGE_URL: process.env.NEXT_PUBLIC_CLOUDFLARE_IMAGE_URL,
});
} catch (error) {
console.error('❌ Invalid environment variables:');
if (error instanceof z.ZodError) {
error.errors.forEach((err) => {
console.error(` - ${err.path.join('.')}: ${err.message}`);
});
}
throw new Error('Environment validation failed');
}
}
export const env = validateEnv();