@carecard/validate

中文文档
3.45.0发布于 2026/11/03ISCTypeScriptCommonJS构建来源已验证近 30 天下载 3527

验证数据

中文使用文档
文档目录4 节
  1. 明确的计划
  2. 配置密码验证
  3. 格式上游和正常化
  4. 验证

@ carecard/ 验证

可重复使用的格式上游、条形输入正常化和调用者配置 审定。 域计划、允许的角色、工作流程状态和密码 政策属于拥有这些政策的服务或应用程序。 这个包裹从来没有 解释财产名称或提供商业政策默认.

明确的计划

createValueParser(predicate, transform?) 调整布尔上游和可选 价值转换。 自定义解析器返回 { isValid: true, value } 或者说 { isValid: false }预测值必须准确返回 true 接受一个值.

validateSchemaProperties(input, schema) 仅返回在 呼叫者计划。 它复制和修剪 JSON 密钥和字符串边缘 在解析前, 省略未知或拒绝的字段,并且不改变输入.

validateSchemaWhitelistProperties(input, requiredPaths, options) 需要一个 明确 options.schema 对每个完整的选定路径都使用一个解析器。 需求 缺少/无效字段并提供无效的可选字段生成 BAD_INPUT。 。 。 . 缺少的可选字段被省略 。 分数叶是按元素解析的元素. 缺少或无效的配置 TypeError。 。 。 .

const {
  createValueParser,
  isInteger,
  validateSchemaWhitelistProperties,
} = require('@carecard/validate');

const output = await validateSchemaWhitelistProperties(
  { measurement: { count: 3 }, ignored: true },
  ['measurement.count'],
  { schema: { 'measurement.count': createValueParser(isInteger) } },
);
// { measurement: { count: 3 } }

选项也支持 optionalProperties, (中文(简体) ), convertToSnakeCase, (中文(简体) ), flattenOutput, (中文(简体) ), 财务报告和审定财务报表 flattenKeyStyle (单位:千美元)path 默认或 leaf) (中文(简体) ). 蛇/骆驼路径变体 ; 拒绝一个段内的混合外壳。 选择是 以五个路径段和每个呼叫的5000个路径为界. 公共常数是 MAX_NESTING_DEPTH 财务报告和审定财务报表 MAX_KEYS_PER_CALL。 。 。 .

平叶相撞有利于更浅的值,然后是第一个转弯. 所保留的外观键仍然是惰性自身数据,所继承的路径被忽略. 模糊的正态密钥,循环 JSON 输入,和访问器被拒绝.

配置密码验证

validatePasswordAgainstPolicy(value, { minimumLength, maximumLength, isBlocked? }) 需要调用者选中的长度 。 它修剪了弦边缘,使NFC正常化,以及 计算 Unicode 代码点。 成功的结果含有犬科价值. 失败的原因是 invalid_type, (中文(简体) ), invalid_unicode, (中文(简体) ), too_short, (中文(简体) ), too_long, (中文(简体) ), 财务报告和审定财务报表 blocked。无效的政策配置 TypeError。 。 。 .

isCommonPassword(value) 暴露了一个普通的 弱口袋检查。 它已经 没有自动效果; 呼叫者决定是否将其作为 isBlocked。 。 。 .

格式上游和正常化

直接上游覆盖整数,UUID,日期/时间戳,电子邮件,HTTP URL, MIME 类型、安全 JSON、 Unicode 文本、名称、文件名元数据、电话和其他 可重复使用的格式。 它们返回布尔语,不给数据指定域名. isInStringArray(values, input) 检查一个呼叫者提供的病例不敏感列表. 现有 validate 名称空间包含相同的通用格式的上游.

normalizeInputWhitespace(input) 复制 JSON 记录和数组, 修饰自有密钥 和字符串边缘,保留内部的空白和不透明/二进制值,以及 拒绝关键相撞、连接器和周期。 原始格式上游保留 字符限制。 文件名呼叫器可以被明确接受 有 NFKC 和修饰的元数据; 显示名称不变 .

公共根和有重点的进口对浏览器捆绑安全. 类型脚本 合同的提供方式 index.d.ts。 。 。 .

验证

运行 npm run test:All, (中文(简体) ), npm run lint,以及 npm run format:check运行时间 发言、分支、职能和线路的覆盖率仍为100%。 测试 使用呼叫者拥有的示例计划进行公共行为; 商业政策是 在它自己的存储器中验证.

不可转让的测试令不规则:每一次测试必须独立通过之前或之后的测试,每一次执行指令的套房都必须通过. 每个测试必须建立它所需要的状态,隔离可变状态,并清理它拥有的状态;它绝不能依赖另一个测试的设置,突变,或清理. 默认测试,CI,和Husky命令必须使用测试框架的普通命令,不得强迫随机命令. 随机顺序执行只是一种明确的诊断,它所暴露出的每一出故障都必须被固定在根源上.

不可谈判的"根源-原因"解决方案规则:总是识别并解决已核实的根源,使用更强的解决方案,并给出正确,持久,生产质量的结果. 绝不将临时工作、资源增加、重试、压制、绕行或只表现的补丁视为补丁。 验证根-原因 固定真实失败的工作流程 并证明结束状态.

不可转让的TDD规则:总是先写出失败的测试,运行以确认它因预期原因失败,然后执行代码并重跑测试直到通过. 所有编码工作都需要测试驱动开发,不得跳过. 仅用于文档或技能编辑,运行相关的焦点非测试 更改道词前验证; 不添加检查的自动测试 出品人、文件或寄存器结构.

不可转让寄存器隔离规则:每个寄存器必须只使用寄存器内包含的文件,代码,定着物,依赖以及服务来运行其Husky钩和测试. 测试和Husky脚本不得导入,要求,阅读,执行,或以其他方式依赖寄存器根外的兄弟姐妹寄存器或路径. app-e2e-测试是唯一的例外,因为交叉存储端到端测试是其明确的责任.

不可转让错误和警告规则:从不压制,沉默,隐藏,降级,过滤,忽略,跳过,或绕过代码,测试,工具,编译器,linters,或验证错误或警告. 修补根源,再重新运行受影响的检查并需要干净的结果. 预期出错路径测试可能断言出错,但绝不能掩盖出乎意料的失败.

不可转让类型脚本类型规则: 永远不要使用类型脚本类型 any; 总是使用特定域类型、通用项目类型、现有项目类型,或 unknown 在所有类型Script- family文件中明确缩小(.ts, (中文(简体) ), .tsx, (中文(简体) ), .mts, (中文(简体) ), .cts,以及 .d.ts) (中文(简体) ).

非可转让代码组织规则:具有相同或等同行为的函数必须在整个CareCard寄存器中使用相同或明显对应的描述性名称,等同的功能必须活在每个寄存器既定架构中同名的文件中. 不允许向后兼容名称,别名,或重复位置.

版本与发布记录

@carecard/validate 共发布 87 个版本,首次发布于 2025/12/23;过去 12 个月发布了 87 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.45.0latest2026/11/036 天前
3.44.02026/10/1327 天前
3.43.02026/10/1327 天前
3.42.02026/10/1327 天前
3.41.02026/10/1227 天前
3.40.02026/10/1228 天前

关于 @carecard/validate 的常见问题

@carecard/validate 是什么?

验证数据

如何安装 @carecard/validate?

在项目目录运行 npm install @carecard/validate,或使用 pnpm add / yarn add / bun add。

@carecard/validate 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@carecard/validate 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@carecard/validate 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.21.0 <25。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@carecard/validate 可以商用吗?

@carecard/validate 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@carecard/validate 的下载量有多少?

根据 npm 官方下载统计,@carecard/validate 在 2026/10/09 – 2026/11/07 这 30 天内被下载 3,527 次,日均约 118 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@carecard/validate 还在维护吗?

最新版本 3.45.0 发布于 2026/11/03(6 天前);至今共发布 87 个版本,其中过去 12 个月发布了 87 个;首次发布于 2025/12/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。