@ aslative/ config
具有计划验证的型式安全环境配置
部分 基础 生态系统——一个基于信号的网络运行时间超过本土的HTML.
安装
npm install @basenative/config
快速启动
import { defineConfig, string, number, boolean, oneOf } from '@basenative/config';
const config = defineConfig({
schema: {
PORT: number(),
DATABASE_URL: string(),
NODE_ENV: oneOf(['development', 'production', 'test']),
DEBUG: boolean(),
},
});
console.log(config.PORT); // number
console.log(config.DATABASE_URL); // string
带有前缀
const config = defineConfig({
schema: {
port: number(),
secret: string(),
},
prefix: 'APP_', // reads APP_PORT, APP_SECRET from env
});
和Zod在一起 和Zod在一起的时候
import { defineConfig, zodAdapter } from '@basenative/config';
import { z } from 'zod';
const config = defineConfig({
schema: zodAdapter(z.object({
PORT: z.coerce.number().default(3000),
DATABASE_URL: z.string().url(),
})),
});
API 密码
defineConfig(options)——从环境变量中装入并验证配置.options.schema- 密钥验证地图或zodAdapter函数.options.env- env vars 的源对象(默认为process.env) (中文(简体) ).options.prefix——可选前缀被剥去后再匹配计划键.
内建验证器
string()——需要非空字符串值.number()——将嵌入字符串为数字;扔出(如果不是数字的话).boolean()- 阴道'true'编号 :'1'改为true, (中文(简体) ),'false'编号 :'0'改为false。 。 。 .oneOf(values[])——要求将数值作为所列选项之一.optional(validator)—— 环绕任何验证符允许缺失/未定义值.validateConfig(values, schema)– 以图示验证平面对象; 投出可操作的失败信息 .
装入器
loadEnv(path?)- 装入a.env文件输入process.env默认为.env在工作目录中.parseEnvFile(content)- 说明a.env文件字符串进入普通对象而不发生变异process.env。 。 。 .zodAdapter(schema)- 修改 Zod 方案,用于defineConfig。 。 。 .
许可证
阿帕奇 - 2.0