@conformetry/validation

中文文档
0.0.77发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 9179

Template matching, existence verification, and conformance validation orchestrator for Conformetry

原始使用文档
文档目录8 节
  1. Usage
  2. Order of checks
  3. Scoring
  4. Language resolution
  5. Exports
  6. Test
  7. License
  8. 👔 Conformetry

👔 Conformetry Validation

npm

The validation orchestrator for Conformetry: it matches instances to templates, checks the declared files exist, routes each document to the validator that claims its extension, and deduplicates what comes back.

npm install --save-dev @conformetry/validation

Usage

import { ValidationService } from "@conformetry/validation";

const result = validationService.validate({
  instances, // from DiscoveryService.findInstances
  templates, // from DiscoveryService.collectTemplate
  languageNames: ["typescript"], // optional filter
  threshold: 0.9, // optional run-level conformance floor
});
// → { ok, fileResults, checkedPaths, scores, unmatched }

Instances arrive from the caller. This package used to scan the workspace for project.json files and infer scope from generator name suffixes, which made a generic package depend on one repository's layout.

Order of checks

  1. Files exist. Every file the matched template declares is checked first, whatever its extension. A missing file cannot be compared, and reporting it once is clearer than every language reporting it in turn. See @conformetry/languages, whose FilesService owns that pass.
  2. Documents compare. Each validator sees only the documents whose extensions it claims.

Instances that matched no template are reported alongside the content differences rather than skipped, so one report covers both "this file is wrong" and "conformetry cannot tell what this path was generated from".

Scoring

Each matched instance is scored by how much of its template it honours, and passes when that reaches the threshold resolved for it — the instance group's, else the generator's, else the run's, else a perfect 1.

Scores are taken before deduplication. Deduplication decides which template gets to print a shared file's finding, which is a reporting concern; a score answers how well one instance honours its own template, so collapsing the report must not change it.

ok is false when any instance falls below its threshold, or when any instance matched no template at all — an unmatched path has no template to be held to, so no threshold could excuse it.

Language resolution

Which languages a run needs is @conformetry/languages's question, not this package's. LanguagesService is injected, asked which engines claim the extensions the run's templates declare, and its answer is what validate dispatches over. An extension no language claims is compared line by line by the text fallback, so no template file goes unchecked.

Nothing is imported on demand any more. That mechanism bought install-time optionality nobody was spending — the fallback makes every run need the package regardless — so the specifier registry, the module loader, and the loadLanguageModule option went with it. The trade-off, and the three alternatives weighed against it, are recorded in ADR 0006.

Exports

ValidationService, ValidationDeduplicationService, ValidationFindingsService, ValidationScoringService, ValidationModule, and the RunValidationArguments, RunValidationResult, and InstanceFileResults types.

Test

nx run conformetry-validation:vitest

License

MIT — see LICENSE.

👔 Conformetry

This project was generated from the nestjs-service-project conformetry template.

版本与发布记录

@conformetry/validation 共发布 75 个版本,首次发布于 2026/10/05;过去 12 个月发布了 75 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.77latest2026/11/10今天
0.0.762026/11/10今天
0.0.752026/11/091 天前
0.0.742026/11/091 天前
0.0.732026/11/091 天前
0.0.722026/11/082 天前

关于 @conformetry/validation 的常见问题

@conformetry/validation 是什么?

Template matching, existence verification, and conformance validation orchestrator for Conformetry

如何安装 @conformetry/validation?

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

@conformetry/validation 支持 TypeScript 吗?

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

@conformetry/validation 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@conformetry/validation 可以商用吗?

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

@conformetry/validation 的下载量有多少?

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

@conformetry/validation 还在维护吗?

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