@ drzl/ 验证- 核心
验证生成器使用的共享接口和辅助器.
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 的常见问题
如何安装 @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 和提交记录判断。