已键入env
运行时可执行的环境可变合同.
使用此库制作 确定项目中使用的所有环境变量都是有效的 .
使用量
要使用库,首先宣布由组组成的计划. 一组是
一组相关的环境变量,通常共享一个共同的前缀.
组创建使用 envGroup 函数接受字典
包含可变名称及其类型,例如:
import * as typedEnv from '@freighthub/typed-env'
const statsd = typedEnv.envGroup({
HOST: NonEmptyString,
PORT: PortNumber,
PREFIX: NonEmptyString,
}, 'STATSD')
const schema = typedEnv.envSchema({
statsd: statsd,
})
在上述例子中 statsd 组将用来装入变量
STATSD_HOSTSTATSD_PORTSTATSD_PREFIX
可选 STATSD 前缀作为第二个参数传递到 envGroup。 。 。 .
然后使用 envSchema 接受词典的函数
团体.
为验证环境变量,确保设置(使用) dotenv.config()
以装入.env。 然后使用 Env 的负载如下 :
const env = typedEnv.loadFromEnv(schema)
如果缺少任何变量或不通过类型检查,则会出现例外.
类型
typed-env 提供下列计划类型:
Number- 任何号码Integer- 整数PortNumber- 1至65535之间的整数NonEmptyString- 任何长度的非空字符串URI- 经有效URL检查的URIBoolean- 真实或虚假Union- 集合字符串字元,以重新显示变量的可能值
示例
import * as typedEnv from '@freighthub/typed-env'
const schema = typedEnv.envSchema({
elasticSearch: typedEnv.envGroup({
URL: typedEnv.types.URI
}, 'ELASTICSEARCH'),
})
const env = typedEnv.loadFromEnv(schema)
console.log(env.elasticSearch.URL)