Skip to content

Schema

Define your environment variables using any Standard Schema-compatible library:

Zod:

import { z } from "zod";
schema: z.object({
NODE_ENV: z.enum(["development", "production", "test"]).default("development"),
DATABASE_URL: z.string().url(),
PORT: z.coerce.number().min(1).max(65535),
API_KEY: z.string().min(1),
DEBUG: z.coerce.boolean().optional(),
})

Valibot:

import * as v from "valibot";
schema: v.object({
NODE_ENV: v.optional(v.picklist(["development", "production", "test"]), "development"),
DATABASE_URL: v.pipe(v.string(), v.url()),
PORT: v.pipe(v.string(), v.transform(Number), v.minValue(1), v.maxValue(65535)),
})

ArkType:

import { type } from "arktype";
schema: type({
NODE_ENV: "'development' | 'production' | 'test' = 'development'",
DATABASE_URL: "string.url",
PORT: "string.numeric.parse.integer > 0",
})