summaryrefslogtreecommitdiff
path: root/packages/env/src/tools.ts
blob: 625e3d71b7e3962a222dcac96db4208153936cf6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { z } from "zod";

const toolsEnvSchema = z.object({
  // Node
  NODE_ENV: z.enum(["development", "production", "test"]),
  ANALYZE: z.string().optional(),
  NEXT_RUNTIME: z.enum(["nodejs", "edge"]).optional(),

  // Public
  NEXT_PUBLIC_SITE_URL: z.url().default("http://localhost:3000"),

  // Server
  DATABASE_URL: z
    .string()
    .startsWith("postgres://")
    .or(z.string().startsWith("postgresql://")),

  BETTER_AUTH_SECRET: z.string(),
  UPSTASH_REDIS_REST_URL: z.url(),
  UPSTASH_REDIS_REST_TOKEN: z.string(),
  CLOUDFLARE_ACCOUNT_ID: z.string(),
  R2_ACCESS_KEY_ID: z.string(),
  R2_SECRET_ACCESS_KEY: z.string(),
  R2_BUCKET_NAME: z.string(),
});

export type ToolsEnv = z.infer<typeof toolsEnvSchema>;

export const toolsEnv = toolsEnvSchema.parse(process.env);