|
| 1 | +import { createEnv } from "@t3-oss/env-nextjs"; |
| 2 | +import { z } from "zod"; |
| 3 | + |
| 4 | +export const env = createEnv({ |
| 5 | + server: { |
| 6 | + BETTER_AUTH_SECRET: z.string().min(32, "Secret must be at least 32 characters"), |
| 7 | + BETTER_AUTH_URL: z.string().url().optional().default("http://localhost:3000"), |
| 8 | + GOOGLE_CLIENT_ID: z.string().optional().or(z.literal("")), |
| 9 | + GOOGLE_CLIENT_SECRET: z.string().optional().or(z.literal("")), |
| 10 | + GITHUB_CLIENT_ID: z.string().optional().or(z.literal("")), |
| 11 | + GITHUB_CLIENT_SECRET: z.string().optional().or(z.literal("")), |
| 12 | + FACEBOOK_CLIENT_ID: z.string().optional().or(z.literal("")), |
| 13 | + FACEBOOK_CLIENT_SECRET: z.string().optional().or(z.literal("")), |
| 14 | + OTEL_SERVICE_NAME: z.string().optional().default("web"), |
| 15 | + OTEL_SAMPLE_RATE: z |
| 16 | + .string() |
| 17 | + .optional() |
| 18 | + .default("0.1") |
| 19 | + .transform((val) => Number.parseFloat(val)), |
| 20 | + }, |
| 21 | + |
| 22 | + client: { |
| 23 | + NEXT_PUBLIC_BETTER_AUTH_URL: z.string().url().optional().default("http://localhost:3000"), |
| 24 | + NEXT_PUBLIC_API_URL: z.string().url().optional().default("http://localhost:8000"), |
| 25 | + NEXT_PUBLIC_SITE_URL: z.string().url().optional().default("https://example.com"), |
| 26 | + NEXT_PUBLIC_ENABLE_DEVTOOLS: z.enum(["true", "false"]).optional().default("false"), |
| 27 | + NEXT_PUBLIC_GIT_COMMIT: z.string().optional(), |
| 28 | + }, |
| 29 | + |
| 30 | + runtimeEnv: { |
| 31 | + BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET, |
| 32 | + BETTER_AUTH_URL: process.env.BETTER_AUTH_URL, |
| 33 | + GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID, |
| 34 | + GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET, |
| 35 | + GITHUB_CLIENT_ID: process.env.GITHUB_CLIENT_ID, |
| 36 | + GITHUB_CLIENT_SECRET: process.env.GITHUB_CLIENT_SECRET, |
| 37 | + FACEBOOK_CLIENT_ID: process.env.FACEBOOK_CLIENT_ID, |
| 38 | + FACEBOOK_CLIENT_SECRET: process.env.FACEBOOK_CLIENT_SECRET, |
| 39 | + OTEL_SERVICE_NAME: process.env.OTEL_SERVICE_NAME, |
| 40 | + OTEL_SAMPLE_RATE: process.env.OTEL_SAMPLE_RATE, |
| 41 | + NEXT_PUBLIC_BETTER_AUTH_URL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL, |
| 42 | + NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL, |
| 43 | + NEXT_PUBLIC_SITE_URL: process.env.NEXT_PUBLIC_SITE_URL, |
| 44 | + NEXT_PUBLIC_ENABLE_DEVTOOLS: process.env.NEXT_PUBLIC_ENABLE_DEVTOOLS, |
| 45 | + NEXT_PUBLIC_GIT_COMMIT: process.env.NEXT_PUBLIC_GIT_COMMIT, |
| 46 | + }, |
| 47 | + |
| 48 | + skipValidation: !!process.env.SKIP_ENV_VALIDATION, |
| 49 | +}); |
0 commit comments