MyGit

t3-oss/t3-env

Fork: 86 Star: 2739 (更新于 2024-10-31 10:37:08)

license: MIT

Language: TypeScript .

最后发布版本: @t3-oss/env-core@0.11.1 ( 2024-08-25 19:08:33)

官方网址 GitHub网址

Typesafe Envs made Simple

Deploying your app with invalid environment variables is a hassle. This package helps you to avoid that.

Installation

[!NOTE]

This is an ESM only package that requires a tsconfig with a module resolution that can read package.json#exports (NodeNext if transpiling with tsc, Bundler if using a bundler).

# Core package, no framework specific features
pnpm add @t3-oss/env-core zod
# or, with options preconfigured for Next.js
pnpm add @t3-oss/env-nextjs zod

Currently only supports Zod (which you'll need to install separately). Bring your own validation library is on the roadmap.

Usage

For full documentation, see https://env.t3.gg

This package supports the full power of Zod, meaning you can use transforms and default values.

Define your schema

// src/env.mjs
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";

export const env = createEnv({
  /*
   * Serverside Environment variables, not available on the client.
   * Will throw if you access these variables on the client.
   */
  server: {
    DATABASE_URL: z.string().url(),
    OPEN_AI_API_KEY: z.string().min(1),
  },
  /*
   * Environment variables available on the client (and server).
   *
   * 💡 You'll get type errors if these are not prefixed with NEXT_PUBLIC_.
   */
  client: {
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().min(1),
  },
  /*
   * Due to how Next.js bundles environment variables on Edge and Client,
   * we need to manually destructure them to make sure all are included in bundle.
   *
   * 💡 You'll get type errors if not all variables from `server` & `client` are included here.
   */
  runtimeEnv: {
    DATABASE_URL: process.env.DATABASE_URL,
    OPEN_AI_API_KEY: process.env.OPEN_AI_API_KEY,
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY:
      process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY,
  },
});

Use the schema in your app with autocompletion and type inference

// src/app/hello/route.ts
import { env } from "../env.mjs";

export const GET = (req: Request) => {
  const DATABASE_URL = env.DATABASE_URL;
  // use it...
};

Roadmap

  • Bring your own validation library - currently only supports Zod.

最近版本更新:(数据更新于 2024-10-08 08:44:44)

2024-08-25 19:08:33 @t3-oss/env-core@0.11.1

2024-08-25 19:08:33 @t3-oss/env-nuxt@0.11.1

2024-08-25 19:08:33 @t3-oss/env-nextjs@0.11.1

2024-07-22 16:31:10 @t3-oss/env-nextjs@0.11.0

2024-07-22 16:31:10 @t3-oss/env-core@0.11.0

2024-07-22 16:31:10 @t3-oss/env-nuxt@0.11.0

2024-04-23 15:40:33 @t3-oss/env-nuxt@0.10.1

2024-04-23 15:40:33 @t3-oss/env-core@0.10.1

2024-04-23 15:40:33 @t3-oss/env-nextjs@0.10.1

2024-04-22 16:27:23 @t3-oss/env-core@0.10.0

t3-oss/t3-env同语言 TypeScript最近更新仓库

2024-11-05 17:55:23 langgenius/dify

2024-11-05 17:35:52 siyuan-note/siyuan

2024-11-05 16:59:32 laurent22/joplin

2024-11-05 12:39:27 lobehub/lobe-chat

2024-11-05 11:52:31 RSSNext/Follow

2024-11-05 07:18:03 microsoft/genaiscript