@m4x_7/type-debt 1.0.13 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/chunkProcessor.d.ts +2 -1
- package/dist/core/chunkProcessor.js +9 -12
- package/dist/core/chunkProcessor.js.map +1 -1
- package/dist/core/reporter.js +2 -2
- package/dist/core/typeDebt.js +26 -47
- package/dist/core/typeDebt.js.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils.js +3 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import { Project } from "ts-morph";
|
|
2
1
|
import { getTypeDebt } from "./typeDebt.js";
|
|
3
|
-
export function processChunk(
|
|
4
|
-
const project = new Project({ skipAddingFilesFromTsConfig: true });
|
|
5
|
-
project.addSourceFilesAtPaths(chunk);
|
|
2
|
+
export function processChunk(chunkPaths, project) {
|
|
6
3
|
const chunkResults = [];
|
|
7
4
|
project.forgetNodesCreatedInBlock(() => {
|
|
8
|
-
for (const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
for (const filePath of chunkPaths) {
|
|
6
|
+
const file = project.getSourceFile(filePath);
|
|
7
|
+
if (file) {
|
|
8
|
+
chunkResults.push({
|
|
9
|
+
filePath: file.getFilePath(),
|
|
10
|
+
typeDebtMetrics: getTypeDebt(file)
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
|
-
for (const file of project.getSourceFiles()) {
|
|
16
|
-
project.removeSourceFile(file);
|
|
17
|
-
}
|
|
18
15
|
return chunkResults;
|
|
19
16
|
}
|
|
20
17
|
//# sourceMappingURL=chunkProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkProcessor.js","sourceRoot":"","sources":["../../core/chunkProcessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chunkProcessor.js","sourceRoot":"","sources":["../../core/chunkProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,UAAU,YAAY,CAAC,UAAoB,EAAE,OAAgB;IAEjE,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,OAAO,CAAC,yBAAyB,CAAC,GAAG,EAAE;QACrC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAElC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE,CAAC;gBACT,YAAY,CAAC,IAAI,CAAC;oBAChB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;oBAC5B,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
package/dist/core/reporter.js
CHANGED
|
@@ -13,14 +13,14 @@ export async function generateMarkdownReport(results, targetDir, outputPath = "t
|
|
|
13
13
|
md += `- Total Files Scanned: ${totalFiles}\n`;
|
|
14
14
|
md += `- Average Score: ${averageScore}/100\n\n`;
|
|
15
15
|
md += `## Top 10 Worst Offenders\n\n`;
|
|
16
|
-
md += `| Score | File Path |
|
|
16
|
+
md += `| Score | File Path | Typed Nodes | Suppressions | Implicit \`any\` | Explicit \`any\` | \`as any\` | Non-Null (\`!\`) |\n`;
|
|
17
17
|
md += `| :---: | :--- | :--- | :---: | :---: | :---: | :---: | :---: |\n`;
|
|
18
18
|
const worstOffenders = sortedResults.slice(0, 10);
|
|
19
19
|
const absoluteTargetDir = path.resolve(targetDir);
|
|
20
20
|
for (const result of worstOffenders) {
|
|
21
21
|
const metrics = result.typeDebtMetrics;
|
|
22
22
|
const cleanPath = path.relative(absoluteTargetDir, result.filePath);
|
|
23
|
-
md += `| ${metrics.score} | \`${cleanPath}\` | ${metrics.
|
|
23
|
+
md += `| ${metrics.score} | \`${cleanPath}\` | ${metrics.typedNodes} | ${metrics.suppressions} | ${metrics.implicitAny} | ${metrics.explicitAny} | ${metrics.asAny} | ${metrics.nonNullAssertions} |\n`;
|
|
24
24
|
}
|
|
25
25
|
try {
|
|
26
26
|
await fs.writeFile(outputPath, md, "utf-8");
|
package/dist/core/typeDebt.js
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
import { SyntaxKind } from "ts-morph";
|
|
1
|
+
import { SyntaxKind, Node } from "ts-morph";
|
|
2
2
|
import { CONSTANTS } from "../constants.js";
|
|
3
3
|
const SUPPRESSION_REGEX = /(?:\/\/|\/\*)\s*@ts-(ignore|expect-error|nocheck)/g;
|
|
4
|
-
const VALID_TYPES = new Set([
|
|
5
|
-
SyntaxKind.TypeReference,
|
|
6
|
-
SyntaxKind.ArrayType,
|
|
7
|
-
SyntaxKind.UnionType,
|
|
8
|
-
SyntaxKind.IntersectionType,
|
|
9
|
-
SyntaxKind.TypeLiteral,
|
|
10
|
-
SyntaxKind.TupleType,
|
|
11
|
-
SyntaxKind.TypeOperator,
|
|
12
|
-
SyntaxKind.FunctionType,
|
|
13
|
-
SyntaxKind.ConditionalType,
|
|
14
|
-
SyntaxKind.MappedType,
|
|
15
|
-
SyntaxKind.IndexedAccessType,
|
|
16
|
-
SyntaxKind.LiteralType
|
|
17
|
-
]);
|
|
18
4
|
export function getTypeDebt(sourceFile) {
|
|
19
5
|
const metrics = {
|
|
20
6
|
explicitAny: 0,
|
|
@@ -22,47 +8,43 @@ export function getTypeDebt(sourceFile) {
|
|
|
22
8
|
asAny: 0,
|
|
23
9
|
suppressions: 0,
|
|
24
10
|
nonNullAssertions: 0,
|
|
25
|
-
|
|
11
|
+
typedNodes: 0,
|
|
26
12
|
score: 0
|
|
27
13
|
};
|
|
14
|
+
const typeChecker = sourceFile.getProject().getTypeChecker();
|
|
28
15
|
sourceFile.forEachDescendant(node => {
|
|
29
16
|
const kind = node.getKind();
|
|
30
|
-
// explicit any
|
|
31
|
-
if (kind === SyntaxKind.AnyKeyword) {
|
|
32
|
-
const parent = node.getParent();
|
|
33
|
-
if (parent?.getKind() !== SyntaxKind.AsExpression) {
|
|
34
|
-
metrics.explicitAny++;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
17
|
// as any
|
|
38
|
-
|
|
18
|
+
if (kind === SyntaxKind.AsExpression) {
|
|
39
19
|
const asExpression = node.asKindOrThrow(SyntaxKind.AsExpression);
|
|
40
20
|
if (asExpression.getTypeNode()?.getKind() === SyntaxKind.AnyKeyword) {
|
|
41
21
|
metrics.asAny++;
|
|
42
22
|
}
|
|
43
23
|
}
|
|
44
|
-
// implicit any
|
|
45
|
-
if (kind === SyntaxKind.Parameter) {
|
|
46
|
-
const parameter = node.asKindOrThrow(SyntaxKind.Parameter);
|
|
47
|
-
if (!parameter.getTypeNode() && !parameter.getInitializer()) {
|
|
48
|
-
const parentFunction = parameter.getParent();
|
|
49
|
-
const grandParent = parentFunction?.getParent();
|
|
50
|
-
// Ignore parameters in callbacks (e.g., .map(item => ...))
|
|
51
|
-
const isCallback = (parentFunction?.getKind() === SyntaxKind.ArrowFunction ||
|
|
52
|
-
parentFunction?.getKind() === SyntaxKind.FunctionExpression) &&
|
|
53
|
-
grandParent?.getKind() === SyntaxKind.CallExpression;
|
|
54
|
-
if (!isCallback) {
|
|
55
|
-
metrics.implicitAny++;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
24
|
// not null expression
|
|
60
25
|
if (kind === SyntaxKind.NonNullExpression) {
|
|
61
26
|
metrics.nonNullAssertions++;
|
|
62
27
|
}
|
|
63
|
-
//
|
|
64
|
-
else if (
|
|
65
|
-
|
|
28
|
+
// declarations
|
|
29
|
+
else if (Node.isVariableDeclaration(node) ||
|
|
30
|
+
Node.isParameterDeclaration(node) ||
|
|
31
|
+
Node.isPropertyDeclaration(node)) {
|
|
32
|
+
const typeNode = node.getTypeNode();
|
|
33
|
+
if (typeNode && typeNode.getKind() === SyntaxKind.AnyKeyword) {
|
|
34
|
+
metrics.explicitAny++;
|
|
35
|
+
}
|
|
36
|
+
else if (!typeNode) {
|
|
37
|
+
const type = node.getType();
|
|
38
|
+
if (type.isAny()) {
|
|
39
|
+
metrics.implicitAny++;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
metrics.typedNodes++;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
metrics.typedNodes++;
|
|
47
|
+
}
|
|
66
48
|
}
|
|
67
49
|
});
|
|
68
50
|
//suppressions
|
|
@@ -74,10 +56,10 @@ export function getTypeDebt(sourceFile) {
|
|
|
74
56
|
}
|
|
75
57
|
export function calculateScore(metrics) {
|
|
76
58
|
const penalty = calculatePenalty(metrics);
|
|
77
|
-
if (metrics.
|
|
59
|
+
if (metrics.typedNodes + penalty === 0) {
|
|
78
60
|
return 100;
|
|
79
61
|
}
|
|
80
|
-
const score = Math.round(100 * metrics.
|
|
62
|
+
const score = Math.round(100 * metrics.typedNodes / (metrics.typedNodes + penalty));
|
|
81
63
|
return Math.max(0, score);
|
|
82
64
|
}
|
|
83
65
|
export function calculatePenalty(metrics) {
|
|
@@ -87,7 +69,4 @@ export function calculatePenalty(metrics) {
|
|
|
87
69
|
+ metrics.nonNullAssertions * CONSTANTS.TYPE_DEBT_METRICS.NON_NULL_ASSERTION_WEIGHT
|
|
88
70
|
+ metrics.suppressions * CONSTANTS.TYPE_DEBT_METRICS.SUPPRESSION_WEIGHT;
|
|
89
71
|
}
|
|
90
|
-
function isValidTypeNode(node) {
|
|
91
|
-
return VALID_TYPES.has(node.getKind());
|
|
92
|
-
}
|
|
93
72
|
//# sourceMappingURL=typeDebt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeDebt.js","sourceRoot":"","sources":["../../core/typeDebt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,
|
|
1
|
+
{"version":3,"file":"typeDebt.js","sourceRoot":"","sources":["../../core/typeDebt.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { chunkArray, validateDirectory } from "./utils.js";
|
|
|
4
4
|
import { processChunk } from "./core/chunkProcessor.js";
|
|
5
5
|
import { CONSTANTS } from "./constants.js";
|
|
6
6
|
import { generateMarkdownReport } from "./core/reporter.js";
|
|
7
|
+
import { Project } from "ts-morph";
|
|
7
8
|
const args = process.argv.slice(2);
|
|
8
9
|
if (args.includes('--help') || args.includes('-h')) {
|
|
9
10
|
printHelp();
|
|
@@ -17,6 +18,10 @@ runCLI(target).catch((err) => {
|
|
|
17
18
|
async function runCLI(targetDir) {
|
|
18
19
|
await validateDirectory(targetDir);
|
|
19
20
|
console.log(`\nScanning directory: ${targetDir}`);
|
|
21
|
+
console.log("Initializing TypeScript compiler...");
|
|
22
|
+
const project = new Project({
|
|
23
|
+
tsConfigFilePath: "tsconfig.json",
|
|
24
|
+
});
|
|
20
25
|
const allFiles = getTargetFiles(targetDir);
|
|
21
26
|
if (allFiles.length === 0) {
|
|
22
27
|
throw new Error(`No TypeScript files found to process.`);
|
|
@@ -24,7 +29,7 @@ async function runCLI(targetDir) {
|
|
|
24
29
|
const fileChunks = chunkArray(allFiles, CONSTANTS.CHUNK_SIZE);
|
|
25
30
|
let allResults = [];
|
|
26
31
|
for (const [index, chunk] of fileChunks.entries()) {
|
|
27
|
-
const chunkResults = processChunk(chunk);
|
|
32
|
+
const chunkResults = processChunk(chunk, project);
|
|
28
33
|
allResults = allResults.concat(chunkResults);
|
|
29
34
|
process.stdout.write(`\rProcessed chunk ${index + 1}/${fileChunks.length}`);
|
|
30
35
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAE9B,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC3B,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAGH,KAAK,UAAU,MAAM,CAAC,SAAiB;IAErC,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,gBAAgB,EAAE,eAAe;KAClC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAE9D,IAAI,UAAU,GAAiB,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAElD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,sBAAsB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;GAQX,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/types.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { fdir } from "fdir";
|
|
2
2
|
import { stat } from "fs/promises";
|
|
3
|
+
import { resolve } from "path";
|
|
3
4
|
export function getTargetFiles(directoryPath) {
|
|
4
5
|
const crawler = new fdir()
|
|
5
6
|
.withFullPaths()
|
|
@@ -9,7 +10,8 @@ export function getTargetFiles(directoryPath) {
|
|
|
9
10
|
dirName === ".git")
|
|
10
11
|
.filter((path) => path.endsWith(".ts") || path.endsWith(".tsx"))
|
|
11
12
|
.crawl(directoryPath);
|
|
12
|
-
|
|
13
|
+
const files = crawler.sync();
|
|
14
|
+
return files.map(file => resolve(file).split('\\').join('/'));
|
|
13
15
|
}
|
|
14
16
|
export function chunkArray(array, chunkSize) {
|
|
15
17
|
const chunks = [];
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAG7B,MAAM,UAAU,cAAc,CAAC,aAAqB;IAClD,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE;SACvB,aAAa,EAAE;SACf,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,OAAO,KAAK,cAAc;QAC1B,OAAO,KAAK,MAAM;QAClB,OAAO,KAAK,OAAO;QACnB,OAAO,KAAK,MAAM,CACnB;SACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC/D,KAAK,CAAC,aAAa,CAAC,CAAC;IAExB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;IACzC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAGD,MAAM,UAAU,UAAU,CAAI,KAAU,EAAE,SAAiB;IACzD,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAElD,IAAI,KAAK,CAAC;IAEV,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,mBAAmB,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,uBAAuB,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED