@ dot/ 配置
节点+AWS项目的配置合同.
本套件执行的合同包括:
- 配置值处理和断言出错 。 空值或缺失值停止执行 .
- 容易获得环境变量
- AWS SSM 参数的存取便利
- 容易获取 AWS 机密管理器机密
- 无需使用或访问
process.env - 指定配置的默认值
- 提供犬类环境名称, 将环境解析为中心
对于TypeScript用户,根据传输到的配置选项的密钥,以intellisense方式提供已知的配置值 init。 。 。 .
所需资源
此软件包需要 活动 LTS 节点版本 (v18+).
安装
使用 pnpm :
pnpm add @dot/config
使用量
import { env, init } from '@dot/config';
const defaultConfig = { ... };
const secretConfig = {
BATCAVE_CODE: `/${env}/batcave/code`
};
const ssmConfig = { ... };
const { get } = init({ defaultConfig, pkg, secretConfig, ssmConfig });
const value = await get('BATCAVE_CODE');
出口
DotEnv
类型 : Enum
一个 enum 代表常见的节点、部署或运行环境.
enum DotEnv {
DEV = 'dev',
PROD = 'prod',
STAGE = 'stage',
TEST = 'test'
}
env
类型 : String
现值 env 值,对应 DotEnv。 。 。 .
envPrefix
类型 : String
现值 env 在用于部署资源标识符和其他标识符或前缀的前缀中值。 譬如说. prod-
init
类型 : Function
回返情况: { get, put }
初始化配置取出和放出.
选项
defaultConfig
类型 : Object
一个 object 用于识别配置值.
secretConfig
类型 : Object
一个 object 使密钥匹配 AWS 密管器名称 .
ssmConfig
类型 : Object
一个 object 使密钥匹配 AWS SSM 参数存储路径 .
get
类型 : Function
参数: (key: String)
回返情况: Promise<String | Number>
获取指定密钥的值 。 密钥可能代表以下关键内容:
process.env- 默认配置对象
- 密钥配置对象
- SSM 配置对象
如果密钥不存在, 或者从任何可能来源返回的值是 undefined页:1 RangeError 被抛出.
const name = await get('BATMAN');
put
类型 : Function
参数: (key: String, value: any)
回返情况: Promise<AWS Response>
保存指定的密钥的值,该密钥对应 AWS SSM 参数路径。 此函数仅限于 AWS SSM 参数存储.
await put('DB_NAME', 'batman');