返回 presentation-ai
env.js
根目录 / src / env.js
1 import { createEnv } from "@t3-oss/env-nextjs";
2 import { z } from "zod";
3
4 export const env = createEnv({
5 server: {
6 DATABASE_URL: z.string().url(),
7 TAVILY_API_KEY: z.string().optional(),
8 NODE_ENV: z
9 .enum(["development", "test", "production"])
10 .default("development"),
11
12 OPENAI_API_KEY: z.string().optional(),
13 GOOGLE_CUSTOM_SEARCH_API_KEY: z.string().optional(),
14 SEARCH_ENGINE_CX: z.string().optional(),
15 TOGETHER_AI_API_KEY: z.string().optional(),
16 FAL_API_KEY: z.string().optional(),
17 PINECONE_API_KEY: z.string().optional(),
18 GOOGLE_CLIENT_ID: z.string(),
19 GOOGLE_CLIENT_SECRET: z.string(),
20 UNSPLASH_ACCESS_KEY: z.string().optional(),
21 NEXTAUTH_URL: z.preprocess(
22 (str) => process.env.VERCEL_URL ?? str,
23 process.env.VERCEL ? z.string() : z.string().url(),
24 ),
25 NEXTAUTH_SECRET:
26 process.env.NODE_ENV === "production"
27 ? z.string()
28 : z.string().optional(),
29 },
30
31 runtimeEnv: {
32 DATABASE_URL: process.env.DATABASE_URL,
33 GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID,
34 GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET,
35 UNSPLASH_ACCESS_KEY: process.env.UNSPLASH_ACCESS_KEY,
36 TAVILY_API_KEY: process.env.TAVILY_API_KEY,
37 NODE_ENV: process.env.NODE_ENV,
38 OPENAI_API_KEY: process.env.OPENAI_API_KEY,
39 GOOGLE_CUSTOM_SEARCH_API_KEY: process.env.GOOGLE_CUSTOM_SEARCH_API_KEY,
40 SEARCH_ENGINE_CX: process.env.SEARCH_ENGINE_CX,
41 TOGETHER_AI_API_KEY: process.env.TOGETHER_AI_API_KEY,
42 FAL_API_KEY: process.env.FAL_API_KEY,
43 PINECONE_API_KEY: process.env.PINECONE_API_KEY,
44 NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET,
45 NEXTAUTH_URL: process.env.NEXTAUTH_URL,
46 },
47
48 skipValidation: !!process.env.SKIP_ENV_VALIDATION,
49 emptyStringAsUndefined: true,
50 });
51
51 lines JAVASCRIPT