一次定义,处处信任:CtroEnv 深度解析

CtroEnv 核心 API 使用四种校验器工厂。你可以利用它们轻松保障环境变量的安全。

以下是它们的工作原理:

string() — 用于文本。你可以添加针对 URL、电子邮件、端口或特定长度的规则。它支持使用正则表达式进行自定义模式匹配。

number() — 用于数值。它能将 "3000" 等字符串转换为实际的数字。你可以强制要求整数、正值或特定的数值范围。

boolean() — 用于布尔值(true/false)。它会自动处理 "true" 等字符串或 "1" 等数字。这非常适合用于功能开关(feature flags)。

pick() — 用于将值限制在特定的列表中。它会创建字面量类型(literal types),让你的代码确切知道哪些字符串是被允许的。如果你拼写错误,它甚至会提供纠错建议。

每个校验器都具备的实用方法:

CtroEnv 支持多种不同的环境:

当校验失败时,CtroEnv 不仅仅是停止运行。它会收集每一个错误并一次性全部展示出来。你会得到一份清晰的报告,包含键名(key)、错误消息,甚至还有修复建议。

最终输出是一个冻结对象(frozen object)。这意味着你的配置是只读的,可以防止在运行时发生意外更改。

来源:https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl