@m4x_7/type-debt 1.0.12 → 1.0.13
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/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IAErB,UAAU,EAAE,EAAE;IAEd,iBAAiB,EAAC;QACd,mBAAmB,EAAE,CAAC;QACtB,mBAAmB,EAAE,CAAC;QACtB,aAAa,EAAE,CAAC;QAChB,kBAAkB,EAAE,CAAC;QACrB,yBAAyB,EAAE,CAAC;KAC/B;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IAErB,UAAU,EAAE,EAAE;IAEd,iBAAiB,EAAC;QACd,mBAAmB,EAAE,CAAC;QACtB,mBAAmB,EAAE,CAAC;QACtB,aAAa,EAAE,CAAC;QAChB,kBAAkB,EAAE,CAAC;QACrB,yBAAyB,EAAE,CAAC;KAC/B;CAIK,CAAC"}
|
package/dist/core/reporter.js
CHANGED
|
@@ -8,7 +8,7 @@ export async function generateMarkdownReport(results, targetDir, outputPath = "t
|
|
|
8
8
|
const averageScore = Math.round(totalScore / totalFiles);
|
|
9
9
|
const sortedResults = [...results].sort((a, b) => a.typeDebtMetrics.score - b.typeDebtMetrics.score);
|
|
10
10
|
let md = `Type Debt Report\n\n`;
|
|
11
|
-
md += `> Generated on: ${new Date().
|
|
11
|
+
md += `> Generated on: ${new Date().toLocaleString()}\n\n`;
|
|
12
12
|
md += `## Summary\n`;
|
|
13
13
|
md += `- Total Files Scanned: ${totalFiles}\n`;
|
|
14
14
|
md += `- Average Score: ${averageScore}/100\n\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../core/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAqB,EAAE,SAAiB,EAAE,UAAU,GAAG,qBAAqB;IACvH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/C,CAAC,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,KAAK,CAClD,CAAC;IAEF,IAAI,EAAE,GAAG,sBAAsB,CAAC;IAChC,EAAE,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../core/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAqB,EAAE,SAAiB,EAAE,UAAU,GAAG,qBAAqB;IACvH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/C,CAAC,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,KAAK,CAClD,CAAC;IAEF,IAAI,EAAE,GAAG,sBAAsB,CAAC;IAChC,EAAE,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC;IAE3D,EAAE,IAAI,cAAc,CAAC;IACrB,EAAE,IAAI,0BAA0B,UAAU,IAAI,CAAC;IAC/C,EAAE,IAAI,oBAAoB,YAAY,UAAU,CAAC;IAEjD,EAAE,IAAI,+BAA+B,CAAC;IAEtC,EAAE,IAAI,4HAA4H,CAAC;IAEnI,EAAE,IAAI,mEAAmE,CAAC;IAE1E,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAElD,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpE,EAAE,IAAI,KAAK,OAAO,CAAC,KAAK,QAAQ,SAAS,QAAQ,OAAO,CAAC,UAAU,MAAM,OAAO,CAAC,YAAY,MAAM,OAAO,CAAC,WAAW,MAAM,OAAO,CAAC,WAAW,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,iBAAiB,MAAM,CAAC;IAC1M,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,gDAAgD,UAAU,EAAE,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
|
package/dist/core/typeDebt.js
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import { SyntaxKind } 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
|
+
]);
|
|
4
18
|
export function getTypeDebt(sourceFile) {
|
|
5
19
|
const metrics = {
|
|
6
20
|
explicitAny: 0,
|
|
@@ -47,7 +61,7 @@ export function getTypeDebt(sourceFile) {
|
|
|
47
61
|
metrics.nonNullAssertions++;
|
|
48
62
|
}
|
|
49
63
|
// valid types
|
|
50
|
-
else if (
|
|
64
|
+
else if (isValidTypeNode(node)) {
|
|
51
65
|
metrics.validTypes++;
|
|
52
66
|
}
|
|
53
67
|
});
|
|
@@ -59,21 +73,12 @@ export function getTypeDebt(sourceFile) {
|
|
|
59
73
|
return metrics;
|
|
60
74
|
}
|
|
61
75
|
export function calculateScore(metrics) {
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
metrics.asAny +
|
|
65
|
-
metrics.suppressions +
|
|
66
|
-
metrics.nonNullAssertions;
|
|
67
|
-
const totalTypeNodes = metrics.validTypes + totalDebtInstances;
|
|
68
|
-
if (totalTypeNodes == 0) {
|
|
76
|
+
const penalty = calculatePenalty(metrics);
|
|
77
|
+
if (metrics.validTypes === 0 && penalty === 0) {
|
|
69
78
|
return 100;
|
|
70
79
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const rawPenalty = calculatePenalty(metrics);
|
|
74
|
-
const scaledPenalty = (rawPenalty / totalTypeNodes) * 100;
|
|
75
|
-
return Math.max(0, Math.round(baseScore - scaledPenalty));
|
|
76
|
-
}
|
|
80
|
+
const score = Math.round(100 * metrics.validTypes / (metrics.validTypes + penalty));
|
|
81
|
+
return Math.max(0, score);
|
|
77
82
|
}
|
|
78
83
|
export function calculatePenalty(metrics) {
|
|
79
84
|
return metrics.explicitAny * CONSTANTS.TYPE_DEBT_METRICS.EXPLICIT_ANY_WEIGHT
|
|
@@ -82,12 +87,7 @@ export function calculatePenalty(metrics) {
|
|
|
82
87
|
+ metrics.nonNullAssertions * CONSTANTS.TYPE_DEBT_METRICS.NON_NULL_ASSERTION_WEIGHT
|
|
83
88
|
+ metrics.suppressions * CONSTANTS.TYPE_DEBT_METRICS.SUPPRESSION_WEIGHT;
|
|
84
89
|
}
|
|
85
|
-
function
|
|
86
|
-
return (
|
|
87
|
-
kind === SyntaxKind.StringKeyword ||
|
|
88
|
-
kind === SyntaxKind.NumberKeyword ||
|
|
89
|
-
kind === SyntaxKind.BooleanKeyword ||
|
|
90
|
-
kind === SyntaxKind.InterfaceDeclaration ||
|
|
91
|
-
kind === SyntaxKind.TypeAliasDeclaration);
|
|
90
|
+
function isValidTypeNode(node) {
|
|
91
|
+
return VALID_TYPES.has(node.getKind());
|
|
92
92
|
}
|
|
93
93
|
//# 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/package.json
CHANGED