2023-05-03 19:16:12 +02:00
|
|
|
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"),
|
2025-03-28 14:09:31 -04:00
|
|
|
// 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(),
|
2023-05-03 19:16:12 +02:00
|
|
|
},
|
2025-03-28 14:09:31 -04:00
|
|
|
client: {
|
2025-03-28 10:52:01 -04:00
|
|
|
NEXT_PUBLIC_CLERK_ENABLE_KEYLESS: z
|
|
|
|
|
.enum(["true", "false"])
|
|
|
|
|
.optional()
|
2025-03-28 14:09:31 -04:00
|
|
|
.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(),
|
2025-03-28 10:52:01 -04:00
|
|
|
},
|
2023-05-03 19:16:12 +02:00
|
|
|
runtimeEnv: {
|
2025-03-28 10:52:01 -04:00
|
|
|
NEXT_PUBLIC_CLERK_ENABLE_KEYLESS: process.env.NEXT_PUBLIC_CLERK_ENABLE_KEYLESS,
|
2025-03-28 14:09:31 -04:00
|
|
|
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,
|
2023-05-03 19:16:12 +02:00
|
|
|
ANALYZE: process.env.ANALYZE,
|
|
|
|
|
},
|
2025-03-28 14:09:31 -04:00
|
|
|
// Skip validation in development for easier local development
|
|
|
|
|
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
|
|
|
|
|
});
|