import { createEnv } from '@t3-oss/env-nextjs'; import { z } from 'zod'; // Don't add NODE_ENV into T3 Env, it changes the tree-shaking behavior export const Env = createEnv({ server: { // Remove Clerk: // CLERK_SECRET_KEY: z.string().min(1), DATABASE_URL: z.string().optional(), LOGTAIL_SOURCE_TOKEN: z.string().optional(), }, client: { NEXT_PUBLIC_APP_NAME: z.string().min(1).optional(), NEXT_PUBLIC_APP_DESCRIPTION: z.string().min(1).optional(), NEXT_PUBLIC_APP_URL: z.url().optional(), NEXT_PUBLIC_API_URL: z.url().optional(), NEXT_PUBLIC_TWITTER_HANDLE: z.string().optional(), NEXT_PUBLIC_GA_ID: z.string().optional(), // Remove Clerk: // NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().min(1), // NEXT_PUBLIC_CLERK_SIGN_IN_URL: z.string().min(1), }, shared: { NODE_ENV: z.enum(['test', 'development', 'production']).optional(), }, // You need to destructure all the keys manually runtimeEnv: { // Remove Clerk: // CLERK_SECRET_KEY: process.env.CLERK_SECRET_KEY, DATABASE_URL: process.env.DATABASE_URL, LOGTAIL_SOURCE_TOKEN: process.env.LOGTAIL_SOURCE_TOKEN, NEXT_PUBLIC_APP_NAME: process.env.NEXT_PUBLIC_APP_NAME, NEXT_PUBLIC_APP_DESCRIPTION: process.env.NEXT_PUBLIC_APP_DESCRIPTION, NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL, NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL, NEXT_PUBLIC_TWITTER_HANDLE: process.env.NEXT_PUBLIC_TWITTER_HANDLE, NEXT_PUBLIC_GA_ID: process.env.NEXT_PUBLIC_GA_ID, // Remove Clerk: // NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, // NEXT_PUBLIC_CLERK_SIGN_IN_URL: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL, NODE_ENV: process.env.NODE_ENV, }, });