用途:该规范用于在定义或审查 Valibot schema、以及解析不可信数据时,指导如何把 schema 视为不可信数据边界上的自有契约。schema 定义可接受的线上数据值,产出可信的领域值,并把无效输入变成显式且有意的结果。
主要能力与原则:先阅读与当前任务相关的参考资料,再定义或审查 schema 与解析代码。让 schema 成为线上数据可信的自有契约;以能证明领域形态的 schema 作为唯一事实来源,并推断导出类型,而不是维护重复的类型声明;在信任边界处校验序列化数据,包括已认证的外部载荷,再让它成为领域值;把构造函数保持在 v 命名空间下,以明确库的所有权并保持导入形式一致。
线上语义编码:在 schema 内编码精确的线上语义;用匹配的包装器表达缺失与 null 语义,而不是选择能通过编译的任意包装器;用 v.variant 分派带字面量标签的备选分支,让 Valibot 选择并报告失败的分支;在 schema 中以精确的领域含义定义默认值,不要用默认值重新解释格式错误的输入;在 schema 内转换规范化后的线上输入,使消费者拿到可信领域值而非原始序列化形式。
失败契约:按失败契约选择解析 API,是中止被违反的不变量,还是返回预期的校验分支;保留预期的校验问题,不要用编造的 null 或空值替代。
参考资料:GitHub 仓库 ID 为 open-circle/valibot;Context7 库 ID 为 /open-circle/valibot;DeepWiki 仓库 ID 为 open-circle/valibot。使用 Context7 获取最新文档,使用 DeepWiki 获取实现细节。
限制:资料未提供具体的安装命令、代码示例、收费与平台信息。