21 lines
717 B
TypeScript
21 lines
717 B
TypeScript
import { z } from 'zod';
|
|
|
|
const schema = z.object({
|
|
DATABASE_URL: z.string().default('file:./dev.db'),
|
|
NEXT_PUBLIC_SITE_URL: z.string().url().default('http://localhost:3000'),
|
|
STRIPE_SECRET_KEY: z.string().optional().default(''),
|
|
STRIPE_WEBHOOK_SECRET: z.string().optional().default(''),
|
|
RESEND_API_KEY: z.string().optional().default(''),
|
|
EMAIL_FROM: z.string().default('Acme <noreply@example.com>'),
|
|
});
|
|
|
|
const parsed = schema.safeParse(process.env);
|
|
|
|
if (!parsed.success) {
|
|
console.error('Invalid environment:', parsed.error.flatten().fieldErrors);
|
|
throw new Error('Invalid environment configuration');
|
|
}
|
|
|
|
export const env = parsed.data;
|
|
export const isProd = process.env.NODE_ENV === 'production';
|