@drzl/validation-core

中文文档
3.23.0发布于 2026/08/14Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 3340
中文使用文档

@ drzl/ 验证- 核心

CI npm

验证生成器使用的共享接口和辅助器.

* 赞助者DRZL

DRZL是精心策划的夜晚和周末. 赞助使发电机保持快速、测试和免费.

Sponsor DRZL

  • 每美元都加速CI硬件 抵消我老旧的笔记本电脑的长测试.
  • 主办方在GitHub问题上获得路线图投入和优先回应.
  • 想要一个简短的概述吗? 目前的目标和感谢你们 https://use-drzl.github.io/drzl/赞助商。 。 。 .

出口(必需品)

  • 校验图书馆 : 'zod' | 'valibot' | 'arktype' | 'typebox'
  • 验证器
    • library
    • renderTable(table, opts)
    • renderIndex?(analysis, opts)
  • 帮助者
    • insertColumns(table), (中文(简体) ), updateColumns(table), (中文(简体) ), selectColumns(table)
    • formatCode(code, filePath, formatOpts)
  • 文件名( 由编写文件和桶的每个生成器共享)
    • moduleFileName(tsName, fileSuffix) - > (中文) users.zod.ts
    • moduleSpecifier(tsName, fileSuffix, importExtension?) - > (中文) ./users.zod.js,则 指定兄弟模块需要导入该文件 .
    • importSpecifier(relativePath, importExtension?) 对生成器的路径同样如此 已经掌握了,例如. ./types/users.ts - > (中文) ./types/users.js。 。 。 .
    • 都一样 fileSuffix,所以枪管永远不能命名一个没有写入的文件.
    • ImportExtension 实值 'js' | 'none' | 'ts',默认为 DEFAULT_IMPORT_EXTENSION (单位:千美元)'js') (中文(简体) ). 'js' 唯一的解决形式 bundler, (中文(简体) ), node10, (中文(简体) ), node16 财务报告和审定财务报表 nodenext,在"共同JS"和"无害环境管理"中,没有编译器旗. 'none' 是前2.0个 输出和缺失 node16编号 :nodenext ES模块. 'ts' 需求 allowImportingTsExtensions。 。 。 . .mts 财务报告和审定财务报表 .cts 变成 .mjs 财务报告和审定财务报表 .cjs 两者 'js' 财务报告和审定财务报表 'none'因为一个无延伸规格的人 永远无法解决他们.
  • CHECK限制(由读取这些限制的每个生成器分担)
    • parseCheck(expression, name) - > a的部件 CHECK 可以肯定地指出: 列比较, BETWEEN, (中文(简体) ), IN (...)顶级 AND, (中文(简体) ), length()编号 :char_length(), (中文(简体) ), octet_length(), (中文(简体) ), cardinality()编号 :array_length(col, 1),以及两个栏之间的比较. 否定 无法识别的函数调用 和 regex 匹配 都被拒绝 而不是全部 半被应用,而除去的读取只当其整体将一列钉入一集.
    • lengthMeasure(column, check) - > 如何回答某个列上的个数,作为其中之一 'codePoints', (中文(简体) ), 'utf8Bytes' 或者说 'byteLength',或者没有表达答案. 单位在检查中,答案也需要一栏:测量在PostgreSQL 17.5上, length() 字符数为 a text 和字节数 bytea,以及 char_length(bytea) 不是一个存在的函数. measureExpression(measure, variable) 让它和 lengthCheckLabel(check) 使消息的分类键打开.
    • COLUMN_FORMATS - > 可表达的列格式的图案 列表: 邮资接受 today, (中文(简体) ), January 8, 1999 财务报告和审定财务报表 allballs,所以日期或时间模式 将拒绝数据库的行. numeric 是 Postgres 的数值输入语法,并且 pgBigint编号 :mysqlBigint 两个答案是: bigint({ mode: 'string' }) 栏中,自 Postgres 将文本分析为整数字元(0x1f 财务报告和审定财务报表 1_000 包含)和 MySQL 剖析 作为十进制数字,然后循环(12.5 变成13个。 每种物质均按其自身的 服务器; 既没有说明数量, 也没有说明原因 .
    • CODEPOINT_LENGTH - > (中文) [...v].length,从 varchar(n) 计数字符和 JavaScript 的 .length 计算UTF-16单位。 所有四个发电机都用它.
    • isIntegerColumn(c)
  • 作为数据的限制(由发出分类账的发电机分担)
    • tableConstraints(table) - > 每一CHECK、独特的制约、主要钥匙和外国钥匙 表,每个有稳定 id,它命名的列,规则作为句子,是否为a 生成的图谋执行它, 以及它所传递的确切信息。 折叠 数字 bounds 和折叠的 IN 列表 values因为这些是 一旦库自己写出失败消息,则留待匹配.
    • classifyTableChecks(table) - > 读取 parseCheck 再加上柱形的警卫, 与 meta,所以"数据库也检查了这一点, 没有计划做" 是一个答案比较 超过两个.
    • renderConstraintsModule(tables, opts) - > 来源 constraints.ts:以上数据外加, 除非 errorMap 是虚假的, constraintForIssue(table, issue)未导入的普通对象 任何一种,匹配者读zod的路径项目和valibot的相似.
    • resolveConstraints(option) 扩展 true 手写; CONSTRAINTS_MODULE 文件为 每个生成器都写给它.
  • 独特性
    • renderDuplicateFinder(table, fnName, rowType) - > 函数返回行的来源 在一个批次中与主键上较早的一行相撞,或是一个独特的制约。 平面 TypeScript 没有提及任何验证库, 所以每个验证器生成器都会发出 同一个 空出和缺出列跳过一个约束,匹配 SQL,所以会留下一行 生成了数据库的密钥, 上面没有报告 .
  • 命名( 由每个发出 schema 名称的生成器共享)
    • resolveAffix({ affix, schemaSuffix }) - > (中文) ResolvedAffix
    • schemaName(mode, tsName, resolved), (中文(简体) ), typeName(mode, tsName, resolved)
    • validateAffix(affix, schemaSuffix) > 无法使用或相撞名称的问题
    • pascalCase(s), (中文(简体) ), applyTableCase(tsName, 'preserve' | 'pascal')
    • 通话 resolveAffix() 没有选项可以复制原名,所以 发电机和 OLPC 路由器永远无法解释一个配置的两种方式.

版本与发布记录

@drzl/validation-core 共发布 41 个版本,首次发布于 2025/09/06;过去 12 个月发布了 34 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.23.0latest2026/08/142 个月前
3.22.62026/08/113 个月前
3.22.52026/08/113 个月前
3.22.42026/08/113 个月前
3.22.32026/08/113 个月前
3.22.22026/08/113 个月前

关于 @drzl/validation-core 的常见问题

如何安装 @drzl/validation-core?

在项目目录运行 npm install @drzl/validation-core,或使用 pnpm add / yarn add / bun add。

@drzl/validation-core 支持 TypeScript 吗?

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

@drzl/validation-core 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@drzl/validation-core 需要什么版本的 Node.js?

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

@drzl/validation-core 可以商用吗?

@drzl/validation-core 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@drzl/validation-core 的下载量有多少?

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

@drzl/validation-core 还在维护吗?

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