mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 12:51:13 -05:00
28 lines
950 B
TypeScript
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();
|