46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import { vercel } from "@t3-oss/env-core/presets-zod";
|
|
import { createEnv } from "@t3-oss/env-nextjs";
|
|
import { z } from "zod";
|
|
import { keys as auth } from "@opencut/auth/keys";
|
|
import { keys as db } from "@opencut/db/keys";
|
|
|
|
export const env = createEnv({
|
|
extends: [vercel(), auth(), db()],
|
|
server: {
|
|
ANALYZE: z.string().optional(),
|
|
// Added by Vercel
|
|
NEXT_RUNTIME: z.enum(["nodejs", "edge"]).optional(),
|
|
NODE_ENV: z
|
|
.enum(["development", "production", "test"])
|
|
.default("development"),
|
|
UPSTASH_REDIS_REST_URL: z.string().url(),
|
|
UPSTASH_REDIS_REST_TOKEN: z.string(),
|
|
FREESOUND_CLIENT_ID: z.string(),
|
|
FREESOUND_API_KEY: z.string(),
|
|
// R2 / Cloudflare
|
|
CLOUDFLARE_ACCOUNT_ID: z.string(),
|
|
R2_ACCESS_KEY_ID: z.string(),
|
|
R2_SECRET_ACCESS_KEY: z.string(),
|
|
R2_BUCKET_NAME: z.string(),
|
|
// Modal transcription
|
|
MODAL_TRANSCRIPTION_URL: z.string(),
|
|
},
|
|
client: {},
|
|
runtimeEnv: {
|
|
ANALYZE: process.env.ANALYZE,
|
|
NEXT_RUNTIME: process.env.NEXT_RUNTIME,
|
|
NODE_ENV: process.env.NODE_ENV,
|
|
UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL,
|
|
UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN,
|
|
FREESOUND_CLIENT_ID: process.env.FREESOUND_CLIENT_ID,
|
|
FREESOUND_API_KEY: process.env.FREESOUND_API_KEY,
|
|
// R2 / Cloudflare
|
|
CLOUDFLARE_ACCOUNT_ID: process.env.CLOUDFLARE_ACCOUNT_ID,
|
|
R2_ACCESS_KEY_ID: process.env.R2_ACCESS_KEY_ID,
|
|
R2_SECRET_ACCESS_KEY: process.env.R2_SECRET_ACCESS_KEY,
|
|
R2_BUCKET_NAME: process.env.R2_BUCKET_NAME,
|
|
// Modal transcription
|
|
MODAL_TRANSCRIPTION_URL: process.env.MODAL_TRANSCRIPTION_URL,
|
|
},
|
|
});
|