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)
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 withtsc
,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-22 01:36:46 twentyhq/twenty
2024-11-21 16:58:07 labring/FastGPT
2024-11-21 16:14:54 RSSNext/Follow
2024-11-21 14:41:29 continuedev/continue
2024-11-21 00:40:00 immich-app/immich
2024-11-20 19:46:23 CopilotKit/CopilotKit