ts-reconf 0.1.0 → 0.2.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/analyzer.d.ts +2 -3
- package/dist/analyzer.js +3 -1
- package/dist/analyzer.js.map +1 -1
- package/dist/loadTsConfig.d.ts +2 -2
- package/dist/loadTsConfig.js +4 -1
- package/dist/loadTsConfig.js.map +1 -1
- package/dist/rules/allowJsCheck.js +12 -2
- package/dist/rules/allowJsCheck.js.map +1 -1
- package/dist/rules/declarationNoEmit.d.ts +2 -0
- package/dist/rules/declarationNoEmit.js +18 -0
- package/dist/rules/declarationNoEmit.js.map +1 -0
- package/dist/rules/defaultRedundant.js +3 -15
- package/dist/rules/defaultRedundant.js.map +1 -1
- package/dist/rules/index.d.ts +2 -0
- package/dist/rules/index.js +2 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/legacyOption.js +3 -3
- package/dist/rules/legacyOption.js.map +1 -1
- package/dist/rules/moduleResolutionMismatch.js +1 -1
- package/dist/rules/moduleResolutionMismatch.js.map +1 -1
- package/dist/rules/moduleTypeCheck.js +2 -1
- package/dist/rules/moduleTypeCheck.js.map +1 -1
- package/dist/rules/noEmitOutDir.js +3 -2
- package/dist/rules/noEmitOutDir.js.map +1 -1
- package/dist/rules/noIncludeOrFiles.js +4 -3
- package/dist/rules/noIncludeOrFiles.js.map +1 -1
- package/dist/rules/skipLibCheckExplain.js +2 -1
- package/dist/rules/skipLibCheckExplain.js.map +1 -1
- package/dist/rules/strictRedundant.js +3 -2
- package/dist/rules/strictRedundant.js.map +1 -1
- package/dist/rules/targetLibConflict.js +3 -2
- package/dist/rules/targetLibConflict.js.map +1 -1
- package/dist/rules/verbatimModuleIsolatedModules.d.ts +2 -0
- package/dist/rules/verbatimModuleIsolatedModules.js +18 -0
- package/dist/rules/verbatimModuleIsolatedModules.js.map +1 -0
- package/dist/types.d.ts +10 -1
- package/package.json +8 -4
package/dist/analyzer.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare function analyze(config: CompilerOptions): Finding[];
|
|
1
|
+
import type { Finding, AnalysisContext } from "./types.js";
|
|
2
|
+
export declare function analyze(config: AnalysisContext): Finding[];
|
package/dist/analyzer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { legacyOptionRule, strictRedundantRule, skipLibCheckRule, defaultRedundantRule, targetLibConflictRule, moduleKindCheckRule, allowJsCheckRule, noEmitOutDirCheckRule, noIncludeOrFilesCheckRule, moduleResolutionMismatchRule, } from "./rules/index.js";
|
|
1
|
+
import { legacyOptionRule, strictRedundantRule, skipLibCheckRule, defaultRedundantRule, targetLibConflictRule, moduleKindCheckRule, allowJsCheckRule, noEmitOutDirCheckRule, noIncludeOrFilesCheckRule, moduleResolutionMismatchRule, declarationNoEmitCheckRule, verbatimModuleIsolatedModulesRule, } from "./rules/index.js";
|
|
2
2
|
const rules = [
|
|
3
3
|
legacyOptionRule,
|
|
4
4
|
strictRedundantRule,
|
|
@@ -10,6 +10,8 @@ const rules = [
|
|
|
10
10
|
noEmitOutDirCheckRule,
|
|
11
11
|
noIncludeOrFilesCheckRule,
|
|
12
12
|
moduleResolutionMismatchRule,
|
|
13
|
+
declarationNoEmitCheckRule,
|
|
14
|
+
verbatimModuleIsolatedModulesRule,
|
|
13
15
|
];
|
|
14
16
|
export function analyze(config) {
|
|
15
17
|
return rules.flatMap(rule => rule.analyze(config));
|
package/dist/analyzer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,EAC1B,iCAAiC,GACpC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,KAAK,GAAW;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,gBAAgB;IAChB,qBAAqB;IACrB,yBAAyB;IACzB,4BAA4B;IAC5B,0BAA0B;IAC1B,iCAAiC;CACpC,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,MAAuB;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/loadTsConfig.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function loadTsConfig(tsconfigPath: string):
|
|
1
|
+
import type { AnalysisContext } from "./types.js";
|
|
2
|
+
export declare function loadTsConfig(tsconfigPath: string): AnalysisContext;
|
package/dist/loadTsConfig.js
CHANGED
|
@@ -7,6 +7,9 @@ export function loadTsConfig(tsconfigPath) {
|
|
|
7
7
|
}
|
|
8
8
|
const configDir = path.dirname(tsconfigPath);
|
|
9
9
|
const parsedTSConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, configDir);
|
|
10
|
-
return
|
|
10
|
+
return {
|
|
11
|
+
compilerOptions: parsedTSConfig.options,
|
|
12
|
+
rawConfig: configFile.config
|
|
13
|
+
};
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=loadTsConfig.js.map
|
package/dist/loadTsConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadTsConfig.js","sourceRoot":"","sources":["../src/loadTsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,YAAY,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"loadTsConfig.js","sourceRoot":"","sources":["../src/loadTsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,YAAY,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC7C,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACX,EAAE,CAAC,4BAA4B,CAC3B,UAAU,CAAC,KAAK,CAAC,WAAW,EAC5B,IAAI,CACP,CACJ,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE7C,MAAM,cAAc,GAAG,EAAE,CAAC,0BAA0B,CAChD,UAAU,CAAC,MAAM,EACjB,EAAE,CAAC,GAAG,EACN,SAAS,CACZ,CAAC;IAEF,OAAO;QACH,eAAe,EAAE,cAAc,CAAC,OAAO;QACvC,SAAS,EAAE,UAAU,CAAC,MAAM;KAC/B,CAAC;AACN,CAAC"}
|
|
@@ -2,11 +2,21 @@ const ruleId = "ts.allowJs.check";
|
|
|
2
2
|
export const allowJsCheckRule = {
|
|
3
3
|
id: ruleId,
|
|
4
4
|
analyze(config) {
|
|
5
|
-
const
|
|
6
|
-
|
|
5
|
+
const compilerOptions = config.compilerOptions ?? {};
|
|
6
|
+
const allowJs = compilerOptions.allowJs;
|
|
7
|
+
const checkJs = compilerOptions.checkJs;
|
|
8
|
+
if (!allowJs && !checkJs) {
|
|
7
9
|
return [];
|
|
8
10
|
}
|
|
9
11
|
const findings = [];
|
|
12
|
+
if (checkJs && !allowJs) {
|
|
13
|
+
findings.push({
|
|
14
|
+
ruleId: ruleId,
|
|
15
|
+
severity: "warn",
|
|
16
|
+
message: `The "checkJs" option is enabled without "allowJs". "checkJs" has no effect unless "allowJs" is also enabled. Consider enabling "allowJs" if you want to type-check JavaScript files, or disable "checkJs" if you only want to type-check TypeScript files.`,
|
|
17
|
+
category: "explanation"
|
|
18
|
+
});
|
|
19
|
+
}
|
|
10
20
|
findings.push({
|
|
11
21
|
ruleId: ruleId,
|
|
12
22
|
severity: "info",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowJsCheck.js","sourceRoot":"","sources":["../../src/rules/allowJsCheck.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"allowJsCheck.js","sourceRoot":"","sources":["../../src/rules/allowJsCheck.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAElC,MAAM,CAAC,MAAM,gBAAgB,GAAS;IAClC,EAAE,EAAE,MAAM;IACV,OAAO,CAAC,MAAuB;QAC3B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;QACxC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;QAExC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,4PAA4P;gBACrQ,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC;YACV,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,4JAA4J;YACrK,QAAQ,EAAE,aAAa;SAC1B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const ruleId = "ts.declarationNoEmit.check";
|
|
2
|
+
export const declarationNoEmitCheckRule = {
|
|
3
|
+
id: ruleId,
|
|
4
|
+
analyze(config) {
|
|
5
|
+
const compilerOptions = config.compilerOptions ?? {};
|
|
6
|
+
const findings = [];
|
|
7
|
+
if (compilerOptions.declaration && compilerOptions.noEmit) {
|
|
8
|
+
findings.push({
|
|
9
|
+
ruleId: ruleId,
|
|
10
|
+
severity: "warn",
|
|
11
|
+
message: `The "declaration" option is enabled, but "noEmit" is also set. No declaration files will be emitted, so "declaration" has no effect. Consider removing one of these options.`,
|
|
12
|
+
category: "redundant"
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return findings;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=declarationNoEmit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declarationNoEmit.js","sourceRoot":"","sources":["../../src/rules/declarationNoEmit.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,4BAA4B,CAAC;AAE5C,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC5C,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAuB;QAC3B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,IAAI,eAAe,CAAC,WAAW,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,8KAA8K;gBACvL,QAAQ,EAAE,WAAW;aACxB,CAAC,CAAC;QACP,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
|
@@ -4,8 +4,7 @@ const ruleId = "ts.default.redundant";
|
|
|
4
4
|
*/
|
|
5
5
|
const DEFAULTS = {
|
|
6
6
|
newLine: "lf",
|
|
7
|
-
|
|
8
|
-
importsNotUsedAsValues: "remove",
|
|
7
|
+
charset: "utf8",
|
|
9
8
|
moduleDetection: "auto",
|
|
10
9
|
reactNamespace: "React",
|
|
11
10
|
removeComments: false,
|
|
@@ -28,7 +27,6 @@ const DEFAULTS = {
|
|
|
28
27
|
rewriteRelativeImportExtensions: false,
|
|
29
28
|
// Interop Constraints
|
|
30
29
|
esModuleInterop: false,
|
|
31
|
-
forceConsistentCasingInFileNames: true,
|
|
32
30
|
isolatedDeclarations: false,
|
|
33
31
|
isolatedModules: false,
|
|
34
32
|
preserveSymlinks: false,
|
|
@@ -43,17 +41,6 @@ const DEFAULTS = {
|
|
|
43
41
|
noLib: false,
|
|
44
42
|
target: "es5",
|
|
45
43
|
};
|
|
46
|
-
/*
|
|
47
|
-
// defaults to consider?
|
|
48
|
-
{
|
|
49
|
-
allowJs: false,
|
|
50
|
-
declaration: false,
|
|
51
|
-
incremental: false,
|
|
52
|
-
isolatedModules: false,
|
|
53
|
-
"esModuleInterop": false,
|
|
54
|
-
"skipLibCheck": false,
|
|
55
|
-
}
|
|
56
|
-
*/
|
|
57
44
|
function isEqual(a, b) {
|
|
58
45
|
return JSON.stringify(a) === JSON.stringify(b);
|
|
59
46
|
}
|
|
@@ -61,8 +48,9 @@ export const defaultRedundantRule = {
|
|
|
61
48
|
id: ruleId,
|
|
62
49
|
analyze(config) {
|
|
63
50
|
const findings = [];
|
|
51
|
+
const compilerOptions = config.compilerOptions;
|
|
64
52
|
for (const [option, defaultValue] of Object.entries(DEFAULTS)) {
|
|
65
|
-
if (option in
|
|
53
|
+
if (option in compilerOptions && isEqual(compilerOptions[option], defaultValue)) {
|
|
66
54
|
findings.push({
|
|
67
55
|
ruleId: ruleId,
|
|
68
56
|
severity: "info",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultRedundant.js","sourceRoot":"","sources":["../../src/rules/defaultRedundant.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAAG,sBAAsB,CAAC;AAEtC;;GAEG;AACH,MAAM,QAAQ,GAAoD;IAC9D,OAAO,EAAE,IAAI;IACb,
|
|
1
|
+
{"version":3,"file":"defaultRedundant.js","sourceRoot":"","sources":["../../src/rules/defaultRedundant.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAAG,sBAAsB,CAAC;AAEtC;;GAEG;AACH,MAAM,QAAQ,GAAoD;IAC9D,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,MAAM;IACf,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,OAAO;IACvB,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,KAAK;IACb,eAAe;IACf,YAAY,EAAE,KAAK;IACnB,mBAAmB,EAAE,KAAK;IAC1B,oBAAoB;IACpB,iBAAiB,EAAE,KAAK;IACxB,kBAAkB,EAAE,KAAK;IACzB,MAAM,EAAE,IAAI;IACZ,UAAU;IACV,wBAAwB,EAAE,KAAK;IAC/B,0BAA0B,EAAE,KAAK;IACjC,oBAAoB,EAAE,KAAK;IAC3B,SAAS,EAAE,KAAK;IAChB,4BAA4B,EAAE,KAAK;IACnC,iBAAiB,EAAE,KAAK;IACxB,+BAA+B,EAAE,KAAK;IACtC,sBAAsB;IACtB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,KAAK;IAC3B,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,KAAK;IACvB,oBAAoB,EAAE,KAAK;IAC3B,gBAAgB;IAChB,0BAA0B,EAAE,KAAK;IACjC,kBAAkB,EAAE,KAAK;IACzB,iBAAiB,EAAE,KAAK;IACxB,2BAA2B;IAC3B,qBAAqB,EAAE,KAAK;IAC5B,sBAAsB,EAAE,KAAK;IAC7B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;CAChB,CAAC;AAEF,SAAS,OAAO,CAAC,CAAU,EAAE,CAAU;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAS;IACtC,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAM;QACV,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAE/C,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,IAAI,MAAM,IAAI,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;gBAC9E,QAAQ,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,GAAG,MAAM,4CAA4C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,qCAAqC;oBAC/H,QAAQ,EAAE,WAAW;iBACxB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -8,3 +8,5 @@ export { allowJsCheckRule } from "./allowJsCheck.js";
|
|
|
8
8
|
export { noEmitOutDirCheckRule } from "./noEmitOutDir.js";
|
|
9
9
|
export { noIncludeOrFilesCheckRule } from "./noIncludeOrFiles.js";
|
|
10
10
|
export { moduleResolutionMismatchRule } from "./moduleResolutionMismatch.js";
|
|
11
|
+
export { declarationNoEmitCheckRule } from "./declarationNoEmit.js";
|
|
12
|
+
export { verbatimModuleIsolatedModulesRule } from "./verbatimModuleIsolatedModules.js";
|
package/dist/rules/index.js
CHANGED
|
@@ -8,4 +8,6 @@ export { allowJsCheckRule } from "./allowJsCheck.js";
|
|
|
8
8
|
export { noEmitOutDirCheckRule } from "./noEmitOutDir.js";
|
|
9
9
|
export { noIncludeOrFilesCheckRule } from "./noIncludeOrFiles.js";
|
|
10
10
|
export { moduleResolutionMismatchRule } from "./moduleResolutionMismatch.js";
|
|
11
|
+
export { declarationNoEmitCheckRule } from "./declarationNoEmit.js";
|
|
12
|
+
export { verbatimModuleIsolatedModulesRule } from "./verbatimModuleIsolatedModules.js";
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -2,12 +2,11 @@ const ruleId = "ts.legacy.option";
|
|
|
2
2
|
const legacyOptions = [
|
|
3
3
|
"charset",
|
|
4
4
|
"out",
|
|
5
|
-
"noUncheckedIndexedAccess",
|
|
6
5
|
"importsNotUsedAsValues",
|
|
7
6
|
"keyofStringsOnly",
|
|
8
7
|
"noStrictGenericChecks",
|
|
9
8
|
"noImplicitUseStrict",
|
|
10
|
-
"
|
|
9
|
+
"preserveValueImports",
|
|
11
10
|
"suppressExcessPropertyErrors",
|
|
12
11
|
"suppressImplicitAnyIndexErrors",
|
|
13
12
|
"skipDefaultLibCheck",
|
|
@@ -15,8 +14,9 @@ const legacyOptions = [
|
|
|
15
14
|
export const legacyOptionRule = {
|
|
16
15
|
id: ruleId,
|
|
17
16
|
analyze(config) {
|
|
17
|
+
const compilerOptions = config.compilerOptions;
|
|
18
18
|
return legacyOptions
|
|
19
|
-
.filter(opt => opt in
|
|
19
|
+
.filter(opt => opt in compilerOptions)
|
|
20
20
|
.map(opt => ({
|
|
21
21
|
ruleId: ruleId,
|
|
22
22
|
severity: "warn",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacyOption.js","sourceRoot":"","sources":["../../src/rules/legacyOption.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAElC,MAAM,aAAa,GAA8B;IAC7C,SAAS;IACT,KAAK;IACL,
|
|
1
|
+
{"version":3,"file":"legacyOption.js","sourceRoot":"","sources":["../../src/rules/legacyOption.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAElC,MAAM,aAAa,GAA8B;IAC7C,SAAS;IACT,KAAK;IACL,wBAAwB;IACxB,kBAAkB;IAClB,uBAAuB;IACvB,qBAAqB;IACrB,sBAAsB;IACtB,8BAA8B;IAC9B,gCAAgC;IAChC,qBAAqB;CACxB,CAAC;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAS;IAClC,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAuB;QAC3B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC/C,OAAO,aAAa;aACf,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,eAAe,CAAC;aACrC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACT,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,GAAG,GAAG,uDAAuD,iBAAiB,CAAC,GAAG,CAAC,EAAE;YAC9F,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC,CAAC;IACZ,CAAC;CACJ,CAAC;AAEF,SAAS,iBAAiB,CAAC,GAA0B;IACjD,QAAQ,GAAG,EAAE,CAAC;QACV,KAAK,KAAK,CAAC,CAAC,OAAO,0BAA0B,CAAC;QAC9C,KAAK,8BAA8B,CAAC;QACpC,KAAK,gCAAgC;YACjC,OAAO,8CAA8C,CAAC;QAC1D,KAAK,wBAAwB;YACzB,OAAO,gDAAgD,CAAC;QAC5D,KAAK,qBAAqB;YACtB,OAAO,+BAA+B,CAAC;QAC3C;YACI,OAAO,EAAE,CAAC;IAClB,CAAC;AACL,CAAC"}
|
|
@@ -3,7 +3,7 @@ const ruleId = "ts.module-resolution.mismatch";
|
|
|
3
3
|
export const moduleResolutionMismatchRule = {
|
|
4
4
|
id: ruleId,
|
|
5
5
|
analyze(config) {
|
|
6
|
-
const options = config ?? {};
|
|
6
|
+
const options = config.compilerOptions ?? {};
|
|
7
7
|
const module = options.module;
|
|
8
8
|
const moduleResolution = options.moduleResolution;
|
|
9
9
|
if (!module)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moduleResolutionMismatch.js","sourceRoot":"","sources":["../../src/rules/moduleResolutionMismatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"moduleResolutionMismatch.js","sourceRoot":"","sources":["../../src/rules/moduleResolutionMismatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG9D,MAAM,MAAM,GAAG,+BAA+B,CAAC;AAE/C,MAAM,CAAC,MAAM,4BAA4B,GAAS;IAC9C,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAuB;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAElD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvB,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,SAAS,MAAM,CAAC,QAAgB;YAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,MAAoB,CAAC,CAAC;YAEpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,YAAY;oBACtB,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,cAAc,UAAU,4EAA4E,QAAQ,8DAA8D;iBACtL,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,IAAI,MAAM,KAAK,GAAG,IAAI,gBAAgB,KAAK,EAAE,IAAI,MAAM,KAAK,GAAG,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;gBACxF,QAAQ,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,cAAc,UAAU,8BAA8B,oBAAoB,CAAC,gBAAgB,CAAC,kCAAkC,QAAQ,iFAAiF;iBACnO,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,IAAI,MAAM,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/B,oBAAoB;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACV,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,YAAY;oBACtB,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,uKAAuK;iBACnL,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
|
@@ -2,7 +2,8 @@ const ruleId = "ts.module.check";
|
|
|
2
2
|
export const moduleKindCheckRule = {
|
|
3
3
|
id: ruleId,
|
|
4
4
|
analyze(config) {
|
|
5
|
-
const
|
|
5
|
+
const compilerOptions = config.compilerOptions ?? {};
|
|
6
|
+
const module = compilerOptions.module;
|
|
6
7
|
if (!module) {
|
|
7
8
|
return [];
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moduleTypeCheck.js","sourceRoot":"","sources":["../../src/rules/moduleTypeCheck.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"moduleTypeCheck.js","sourceRoot":"","sources":["../../src/rules/moduleTypeCheck.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,iBAAiB,CAAC;AAEjC,MAAM,CAAC,MAAM,mBAAmB,GAAS;IACrC,EAAE,EAAE,MAAM;IACV,OAAO,CAAC,MAAuB;QAE3B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,IAAI,UAAU,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,yIAAyI;gBAClJ,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
|
@@ -2,8 +2,9 @@ const ruleId = "ts.noEmitOutDir.check";
|
|
|
2
2
|
export const noEmitOutDirCheckRule = {
|
|
3
3
|
id: ruleId,
|
|
4
4
|
analyze(config) {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const compilerOptions = config.compilerOptions ?? {};
|
|
6
|
+
const noEmit = compilerOptions.noEmit;
|
|
7
|
+
const outDir = compilerOptions.outDir;
|
|
7
8
|
const findings = [];
|
|
8
9
|
if (noEmit && outDir) {
|
|
9
10
|
findings.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noEmitOutDir.js","sourceRoot":"","sources":["../../src/rules/noEmitOutDir.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"noEmitOutDir.js","sourceRoot":"","sources":["../../src/rules/noEmitOutDir.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,uBAAuB,CAAC;AAEvC,MAAM,CAAC,MAAM,qBAAqB,GAAS;IACvC,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAuB;QAC3B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QAErD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QAEtC,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,sJAAsJ;gBAC/J,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
|
@@ -2,9 +2,10 @@ const ruleId = "ts.noIncludeOrFiles.check";
|
|
|
2
2
|
export const noIncludeOrFilesCheckRule = {
|
|
3
3
|
id: ruleId,
|
|
4
4
|
analyze(config) {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
5
|
+
const rawConfig = config.rawConfig ?? {};
|
|
6
|
+
const include = rawConfig.include;
|
|
7
|
+
const files = rawConfig.files;
|
|
8
|
+
const exclude = rawConfig.exclude;
|
|
8
9
|
const findings = [];
|
|
9
10
|
if (!include && !files && !exclude) {
|
|
10
11
|
findings.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noIncludeOrFiles.js","sourceRoot":"","sources":["../../src/rules/noIncludeOrFiles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"noIncludeOrFiles.js","sourceRoot":"","sources":["../../src/rules/noIncludeOrFiles.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,2BAA2B,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAS;IAC3C,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAuB;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAElC,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,wJAAwJ;gBACjK,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
|
@@ -2,7 +2,8 @@ const ruleId = "ts.skipLibCheck.explain";
|
|
|
2
2
|
export const skipLibCheckRule = {
|
|
3
3
|
id: ruleId,
|
|
4
4
|
analyze(config) {
|
|
5
|
-
|
|
5
|
+
const compilerOptions = config.compilerOptions ?? {};
|
|
6
|
+
if (!("skipLibCheck" in compilerOptions))
|
|
6
7
|
return [];
|
|
7
8
|
return [
|
|
8
9
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skipLibCheckExplain.js","sourceRoot":"","sources":["../../src/rules/skipLibCheckExplain.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,yBAAyB,CAAC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAS;IAClC,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"skipLibCheckExplain.js","sourceRoot":"","sources":["../../src/rules/skipLibCheckExplain.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,yBAAyB,CAAC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAS;IAClC,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAuB;QAC3B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,CAAC,cAAc,IAAI,eAAe,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpD,OAAO;YACH;gBACI,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,uLAAuL;gBAChM,QAAQ,EAAE,aAAa;aAC1B;SACJ,CAAC;IACN,CAAC;CACJ,CAAC"}
|
|
@@ -2,7 +2,8 @@ const ruleId = "ts.strict.redundant";
|
|
|
2
2
|
export const strictRedundantRule = {
|
|
3
3
|
id: ruleId,
|
|
4
4
|
analyze(config) {
|
|
5
|
-
|
|
5
|
+
const compilerOptions = config.compilerOptions ?? {};
|
|
6
|
+
if (!compilerOptions.strict)
|
|
6
7
|
return [];
|
|
7
8
|
const setByStrictOptions = [
|
|
8
9
|
"alwaysStrict",
|
|
@@ -16,7 +17,7 @@ export const strictRedundantRule = {
|
|
|
16
17
|
"useUnknownInCatchVariables"
|
|
17
18
|
];
|
|
18
19
|
return setByStrictOptions
|
|
19
|
-
.filter(opt =>
|
|
20
|
+
.filter(opt => compilerOptions[opt])
|
|
20
21
|
.map(opt => ({
|
|
21
22
|
ruleId: ruleId,
|
|
22
23
|
severity: "info",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strictRedundant.js","sourceRoot":"","sources":["../../src/rules/strictRedundant.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,qBAAqB,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAS;IACrC,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"strictRedundant.js","sourceRoot":"","sources":["../../src/rules/strictRedundant.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,qBAAqB,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAS;IACrC,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAuB;QAC3B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QAErD,IAAI,CAAC,eAAe,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvC,MAAM,kBAAkB,GAA8B;YAClD,cAAc;YACd,eAAe;YACf,gBAAgB;YAChB,qBAAqB;YACrB,6BAA6B;YAC7B,qBAAqB;YACrB,kBAAkB;YAClB,8BAA8B;YAC9B,4BAA4B;SAC/B,CAAC;QAEF,OAAO,kBAAkB;aACpB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACT,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,GAAG,GAAG,8CAA8C;YAC7D,QAAQ,EAAE,WAAW;SACxB,CAAC,CAAC,CAAC;IACZ,CAAC;CACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ScriptTarget } from "typescript";
|
|
1
2
|
const ruleId = "ts.target-lib.conflict";
|
|
2
3
|
const TARGET_ORDER = {
|
|
3
4
|
"es3": 0,
|
|
@@ -48,13 +49,13 @@ function getHighestLib(libVersions) {
|
|
|
48
49
|
export const targetLibConflictRule = {
|
|
49
50
|
id: ruleId,
|
|
50
51
|
analyze(config) {
|
|
51
|
-
const options = config ?? {};
|
|
52
|
+
const options = config.compilerOptions ?? {};
|
|
52
53
|
const target = options.target;
|
|
53
54
|
const libs = options.lib;
|
|
54
55
|
if (!target || !libs) {
|
|
55
56
|
return [];
|
|
56
57
|
}
|
|
57
|
-
const targetOrder =
|
|
58
|
+
const targetOrder = getTargetIndex(ScriptTarget[target]);
|
|
58
59
|
const libVersions = extractLibVersions(libs);
|
|
59
60
|
const highestLib = getHighestLib(libVersions);
|
|
60
61
|
if (!highestLib) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targetLibConflict.js","sourceRoot":"","sources":["../../src/rules/targetLibConflict.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"targetLibConflict.js","sourceRoot":"","sources":["../../src/rules/targetLibConflict.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const ruleId = "ts.verbatimModuleIsolatedModules.check";
|
|
2
|
+
export const verbatimModuleIsolatedModulesRule = {
|
|
3
|
+
id: ruleId,
|
|
4
|
+
analyze(config) {
|
|
5
|
+
const compilerOptions = config.compilerOptions ?? {};
|
|
6
|
+
const findings = [];
|
|
7
|
+
if (compilerOptions.verbatimModuleSyntax && compilerOptions.isolatedModules) {
|
|
8
|
+
findings.push({
|
|
9
|
+
ruleId: ruleId,
|
|
10
|
+
severity: "info",
|
|
11
|
+
message: `"verbatimModuleSyntax" already implies "isolatedModules". Setting both options is redundant. Consider removing one of these options for cleaner configuration.`,
|
|
12
|
+
category: "redundant"
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return findings;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=verbatimModuleIsolatedModules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verbatimModuleIsolatedModules.js","sourceRoot":"","sources":["../../src/rules/verbatimModuleIsolatedModules.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,wCAAwC,CAAC;AAExD,MAAM,CAAC,MAAM,iCAAiC,GAAS;IACnD,EAAE,EAAE,MAAM;IAEV,OAAO,CAAC,MAAuB;QAC3B,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,IAAI,eAAe,CAAC,oBAAoB,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;YAC1E,QAAQ,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,gKAAgK;gBACzK,QAAQ,EAAE,WAAW;aACxB,CAAC,CAAC;QACP,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,7 +7,16 @@ export interface Finding {
|
|
|
7
7
|
severity: Severity;
|
|
8
8
|
category: Category;
|
|
9
9
|
}
|
|
10
|
+
export interface AnalysisContext {
|
|
11
|
+
compilerOptions: CompilerOptions;
|
|
12
|
+
rawConfig: {
|
|
13
|
+
include?: string[];
|
|
14
|
+
exclude?: string[];
|
|
15
|
+
files?: string[];
|
|
16
|
+
extends?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
10
19
|
export interface Rule {
|
|
11
20
|
id: string;
|
|
12
|
-
analyze(config:
|
|
21
|
+
analyze(config: AnalysisContext): Finding[];
|
|
13
22
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-reconf",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Understand and simplify (re-conf) your tsconfig.json",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
"README.md",
|
|
13
13
|
"LICENSE"
|
|
14
14
|
],
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/rockcoder/ts-reconf.git"
|
|
18
|
+
},
|
|
15
19
|
"scripts": {
|
|
16
20
|
"build": "tsc",
|
|
17
21
|
"dev": "tsx src/cli.ts",
|
|
@@ -32,10 +36,10 @@
|
|
|
32
36
|
"author": "rockcoder",
|
|
33
37
|
"license": "MIT",
|
|
34
38
|
"dependencies": {
|
|
35
|
-
"typescript": "
|
|
39
|
+
"typescript": "6.0.3"
|
|
36
40
|
},
|
|
37
41
|
"devDependencies": {
|
|
38
|
-
"@types/node": "
|
|
39
|
-
"tsx": "
|
|
42
|
+
"@types/node": "25.6.0",
|
|
43
|
+
"tsx": "4.21.0"
|
|
40
44
|
}
|
|
41
45
|
}
|