@barney-media/crap-typescript-核心
计算 CRAP(Change Risk Anti-Patern)的核心分析引擎在TypeScript项目上得分. 将环形复杂性与功能级的伊斯坦布尔覆盖数据相融合.
安装
npm install @barney-media/crap-typescript-core
API 密码
import { analyzeProject, formatAnalysisReport } from "@barney-media/crap-typescript-core";
const result = await analyzeProject({ projectRoot: "." });
const report = formatAnalysisReport(result.metrics, { format: "toon" });
console.log(report);
主要出口: analyzeProject, (中文(简体) ), calculateCrapScore, (中文(简体) ), formatAnalysisReport, (中文(简体) ), formatReport, (中文(简体) ), parseCoverageReport, (中文(简体) ), parseFileMethods。 。 。 .
analyzeProject 接受 threshold 超过默认 CRAP 阈值 6.0。以下数值 4.0 发出警告, 因为它们可能太吵; 上面的值 8.0 发出警告,因为他们太宽大了,即使城门太硬了.
由默认命令执行器运行的命令,包括覆盖命令和更改文件发现,300秒后超时. 设定 CRAP_TYPESCRIPT_COMMAND_TIMEOUT_MS 改为非负毫秒值,以覆盖这一默认值; 0 禁用超时。 被捕捉到的出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出 用户阵容命令失败可能包括截断输出,而需要完整输出的内部命令,例如 git status --porcelain -z,如果超过上限则失败.
analyzeProject 还接受 excludes, (中文(简体) ), excludePathRegexes, (中文(简体) ), excludeGeneratedMarkers,以及 useDefaultExclusions。这些过滤器运行于 explicitPaths 或者说 changedOnly 在解析、覆盖归属、报告和门槛评价之前选择候选文件。 基线可分析性排除在声明、测试/样本文件方面始终有效, __tests__/, (中文(简体) ), dist/, (中文(简体) ), coverage/,以及 node_modules/· ; useDefaultExclusions: false 只禁用生成代码默认值.
生成代码默认排除包含的目录段 generated,目录部分完全命名 gen后缀,例如 *.generated.ts, (中文(简体) ), *.gen.ts, (中文(简体) ), *Generated.ts原生的出产物 和Angular产生的出产的出产物 铅生成头标记仅在第一个非注释符号前的注释中相配.
formatAnalysisReport 支持 toon, (中文(简体) ), json, (中文(简体) ), text, (中文(简体) ), junit,以及 none初级报告披露运行级别 status 财务报告和审定财务报表 threshold; 方法级条目使用 status, (中文(简体) ), crap, (中文(简体) ), cc, (中文(简体) ), cov, (中文(简体) ), covKind, (中文(简体) ), method, (中文(简体) ), src, (中文(简体) ), lineStart,以及 lineEnd,与 src 设置到项目相对源文件路径. format: "none" 返回空主内容。 过 failuresOnly: true 仅包含失败的方法条目。 过 omitRedundancy: true 删除方法级别 status ,同时保留运行级元数据 format: "junit",此选项省略自定义测试框 status 属性,同时保留 JUnit 失败和跳出元素。 JUnit 输出为 GitLab 导向: 它使用 a <testsuites> 包装, classname编号 :file 源路径测试案例属性,带有度量测试案例名称, time="0"级别 system-out 加上带有CRAP分数、阈值、覆盖类型、源路径和行距的失败/滑动正文。 JUnit 仍然为兼容性写自定义属性 。 J股的报告应通过格式化整个衡量标准而产生 format: "junit" 且无 failuresOnly, (中文(简体) ), omitRedundancy,或 agent。 。 。 .
过 sourceExclusionAudit: result.sourceExclusionAudit 改为 formatAnalysisReport 报告应披露排除来源的计数。 完整报告和JUnit旁车包括不包括档案的审计。 从默认代理模式优化主报告默认省略.
agent: true 是初级报告的综合快捷方式。 默认 format 改为 toon cLI 和适配器,以及默认值 failuresOnly 财务报告和审定财务报表 omitRedundancy 改为 true 在核心格式中。 明确 format, (中文(简体) ), failuresOnly: false,或 omitRedundancy: false 选项可以覆盖呼叫站点的默认值.
公式
CRAP = CC^2 * (1 - coverage)^3 + CC
见 主要文件 详细情况.