|
1 | | -import { clientEnvSchema, clientProcessEnv } from '@codebuff/common/env' |
2 | | -import z from 'zod/v4' |
| 1 | +import { clientProcessEnv } from '@codebuff/common/env' |
| 2 | + |
| 3 | +import { serverEnvSchema } from './env-schema' |
| 4 | + |
| 5 | +import type { ServerInput } from './env-schema' |
3 | 6 |
|
4 | 7 | // Only log environment in non-production |
5 | 8 | if (process.env.NEXT_PUBLIC_CB_ENVIRONMENT !== 'prod') { |
6 | 9 | console.log('Using environment:', process.env.NEXT_PUBLIC_CB_ENVIRONMENT) |
7 | 10 | } |
8 | 11 |
|
9 | | -export const serverEnvSchema = clientEnvSchema.extend({ |
10 | | - // Backend variables |
11 | | - CODEBUFF_API_KEY: z.string().optional(), |
12 | | - OPEN_ROUTER_API_KEY: z.string().min(1), |
13 | | - RELACE_API_KEY: z.string().min(1), |
14 | | - LINKUP_API_KEY: z.string().min(1), |
15 | | - CONTEXT7_API_KEY: z.string().optional(), |
16 | | - GOOGLE_CLOUD_PROJECT_ID: z.string().min(1), |
17 | | - PORT: z.coerce.number().min(1000), |
18 | | - |
19 | | - // Web/Database variables |
20 | | - DATABASE_URL: z.string().min(1), |
21 | | - GOOGLE_SITE_VERIFICATION_ID: z.string().optional(), |
22 | | - CODEBUFF_GITHUB_ID: z.string().min(1), |
23 | | - CODEBUFF_GITHUB_SECRET: z.string().min(1), |
24 | | - NEXTAUTH_URL: z.url().optional(), |
25 | | - NEXTAUTH_SECRET: z.string().min(1), |
26 | | - STRIPE_SECRET_KEY: z.string().min(1), |
27 | | - STRIPE_WEBHOOK_SECRET_KEY: z.string().min(1), |
28 | | - STRIPE_USAGE_PRICE_ID: z.string().min(1), |
29 | | - STRIPE_TEAM_FEE_PRICE_ID: z.string().min(1), |
30 | | - LOOPS_API_KEY: z.string().min(1), |
31 | | - DISCORD_PUBLIC_KEY: z.string().min(1), |
32 | | - DISCORD_BOT_TOKEN: z.string().min(1), |
33 | | - DISCORD_APPLICATION_ID: z.string().min(1), |
34 | | - |
35 | | - // Common variables |
36 | | - API_KEY_ENCRYPTION_SECRET: z.string().length(32), |
37 | | -}) |
38 | | -export const serverEnvVars = serverEnvSchema.keyof().options |
39 | | -export type ServerEnvVar = (typeof serverEnvVars)[number] |
40 | | -export type ServerInput = { |
41 | | - [K in (typeof serverEnvVars)[number]]: string | undefined |
42 | | -} |
43 | | -export type ServerEnv = z.infer<typeof serverEnvSchema> |
44 | | - |
45 | 12 | // Bun will inject all these values, so we need to reference them individually (no for-loops) |
46 | 13 | const serverProcessEnv: ServerInput = { |
47 | 14 | ...clientProcessEnv, |
@@ -75,6 +42,4 @@ const serverProcessEnv: ServerInput = { |
75 | 42 | API_KEY_ENCRYPTION_SECRET: process.env.API_KEY_ENCRYPTION_SECRET, |
76 | 43 | } |
77 | 44 |
|
78 | | -console.error({ serverProcessEnv }, 'asdf') |
79 | | - |
80 | 45 | export const env = serverEnvSchema.parse(serverProcessEnv) |
0 commit comments