fix(maintainability): enforce gate and correct loc metric

This commit is contained in:
Tam Nhu Tran
2026-02-12 14:18:48 +07:00
parent 975c864f94
commit 2610971d2e
4 changed files with 9 additions and 4 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
"sourceDirectory": "src",
"largeFileThresholdLoc": 350,
"typeScriptFileCount": 338,
"locInSrc": 66207,
"locInSrc": 65869,
"processExitReferenceCount": 152,
"synchronousFsApiReferenceCount": 842,
"largeFileCountOver350Loc": 52
+1 -1
View File
@@ -204,7 +204,7 @@ All criteria achieved:
The check mode supports a maintainability regression gate that blocks increases in:
- `process.exit` references
- synchronous fs API references
- files over 350 LOC
- TypeScript files over 350 LOC
---
+1 -1
View File
@@ -64,7 +64,7 @@
"lint:fix": "eslint src/ --fix",
"format": "prettier --write src/",
"format:check": "prettier --check src/",
"validate": "bun run typecheck && bun run lint:fix && bun run format:check && bun run test:all",
"validate": "bun run typecheck && bun run lint:fix && bun run format:check && bun run maintainability:check && bun run test:all",
"verify:bundle": "node scripts/verify-bundle.js",
"maintainability:baseline": "node scripts/maintainability-baseline.js --out docs/metrics/maintainability-baseline.json",
"maintainability:check": "node scripts/maintainability-baseline.js --check docs/metrics/maintainability-baseline.json",
+6 -1
View File
@@ -142,7 +142,12 @@ function countLines(content) {
if (content.length === 0) {
return 0;
}
return content.split(/\r?\n/).length;
const lineBreakMatches = content.match(/\r\n|\n|\r/g);
const lineBreakCount = lineBreakMatches ? lineBreakMatches.length : 0;
const endsWithLineBreak = content.endsWith('\n') || content.endsWith('\r');
return endsWithLineBreak ? lineBreakCount : lineBreakCount + 1;
}
function countMatches(content, pattern) {