next-enterprise/env.mjs
2025-03-28 14:09:31 -04:00

40 lines
No EOL
1.6 KiB
JavaScript

import { createEnv } from "@t3-oss/env-nextjs"
import { z } from "zod"
export const env = createEnv({
server: {
ANALYZE: z
.enum(["true", "false"])
.optional()
.transform((value) => value === "true"),
// Add Clerk secret keys (server-side only)
CLERK_SECRET_KEY: z.string().optional(),
// Add any other server-side environment variables
DATABASE_URL: z.string().optional(),
// Vercel deployment environment - this is set automatically by Vercel
VERCEL_ENV: z.enum(["production", "preview", "development"]).optional(),
},
client: {
NEXT_PUBLIC_CLERK_ENABLE_KEYLESS: z
.enum(["true", "false"])
.optional()
.transform((value) => value === "true"),
// Add Clerk publishable key
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().optional(),
// These are set automatically by Vercel
NEXT_PUBLIC_VERCEL_URL: z.string().optional(),
NEXT_PUBLIC_VERCEL_ENV: z.enum(["production", "preview", "development"]).optional(),
},
runtimeEnv: {
NEXT_PUBLIC_CLERK_ENABLE_KEYLESS: process.env.NEXT_PUBLIC_CLERK_ENABLE_KEYLESS,
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY,
NEXT_PUBLIC_VERCEL_URL: process.env.NEXT_PUBLIC_VERCEL_URL,
NEXT_PUBLIC_VERCEL_ENV: process.env.NEXT_PUBLIC_VERCEL_ENV,
CLERK_SECRET_KEY: process.env.CLERK_SECRET_KEY,
DATABASE_URL: process.env.DATABASE_URL,
VERCEL_ENV: process.env.VERCEL_ENV,
ANALYZE: process.env.ANALYZE,
},
// Skip validation in development for easier local development
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
});