@trebired/code-discipline 4.6.0 → 4.6.2

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +6 -3
  2. package/README.md +5 -28
  3. package/dist/checks/apply-fixes.d.ts +1 -2
  4. package/dist/checks/apply-fixes.d.ts.map +1 -1
  5. package/dist/checks/apply-fixes.js +1 -11
  6. package/dist/checks/apply-fixes.js.map +1 -1
  7. package/dist/checks/index.d.ts.map +1 -1
  8. package/dist/checks/index.js +1 -6
  9. package/dist/checks/index.js.map +1 -1
  10. package/dist/checks/rule-slugs.d.ts +0 -1
  11. package/dist/checks/rule-slugs.d.ts.map +1 -1
  12. package/dist/checks/rule-slugs.js +0 -3
  13. package/dist/checks/rule-slugs.js.map +1 -1
  14. package/dist/checks/rules/banned/fold.d.ts +11 -0
  15. package/dist/checks/rules/banned/fold.d.ts.map +1 -0
  16. package/dist/checks/rules/banned/fold.js +210 -0
  17. package/dist/checks/rules/banned/fold.js.map +1 -0
  18. package/dist/checks/rules/banned/patterns.d.ts.map +1 -1
  19. package/dist/checks/rules/banned/patterns.js +34 -4
  20. package/dist/checks/rules/banned/patterns.js.map +1 -1
  21. package/dist/checks/severity.d.ts.map +1 -1
  22. package/dist/checks/severity.js +0 -1
  23. package/dist/checks/severity.js.map +1 -1
  24. package/dist/checks/types.d.ts +2 -13
  25. package/dist/checks/types.d.ts.map +1 -1
  26. package/dist/config/normalize/check-options.d.ts.map +1 -1
  27. package/dist/config/normalize/check-options.js +1 -2
  28. package/dist/config/normalize/check-options.js.map +1 -1
  29. package/dist/config/normalize/rule-options.d.ts +2 -7
  30. package/dist/config/normalize/rule-options.d.ts.map +1 -1
  31. package/dist/config/normalize/rule-options.js +1 -25
  32. package/dist/config/normalize/rule-options.js.map +1 -1
  33. package/dist/imports/module-specifiers.d.ts +1 -2
  34. package/dist/imports/module-specifiers.d.ts.map +1 -1
  35. package/dist/imports/module-specifiers.js +1 -1
  36. package/dist/imports/module-specifiers.js.map +1 -1
  37. package/dist/index.d.ts +1 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/shared/discipline-types.d.ts +1 -1
  40. package/dist/shared/discipline-types.d.ts.map +1 -1
  41. package/dist/shared/languages.d.ts +1 -3
  42. package/dist/shared/languages.d.ts.map +1 -1
  43. package/dist/shared/languages.js +1 -13
  44. package/dist/shared/languages.js.map +1 -1
  45. package/package.json +1 -1
  46. package/dist/checks/rules/ts-nocheck-audit/index.d.ts +0 -7
  47. package/dist/checks/rules/ts-nocheck-audit/index.d.ts.map +0 -1
  48. package/dist/checks/rules/ts-nocheck-audit/index.js +0 -76
  49. package/dist/checks/rules/ts-nocheck-audit/index.js.map +0 -1
  50. package/dist/checks/rules/ts-nocheck-audit/pragma.d.ts +0 -12
  51. package/dist/checks/rules/ts-nocheck-audit/pragma.d.ts.map +0 -1
  52. package/dist/checks/rules/ts-nocheck-audit/pragma.js +0 -33
  53. package/dist/checks/rules/ts-nocheck-audit/pragma.js.map +0 -1
  54. package/dist/checks/rules/ts-nocheck-audit/program.d.ts +0 -14
  55. package/dist/checks/rules/ts-nocheck-audit/program.d.ts.map +0 -1
  56. package/dist/checks/rules/ts-nocheck-audit/program.js +0 -50
  57. package/dist/checks/rules/ts-nocheck-audit/program.js.map +0 -1
@@ -1,76 +0,0 @@
1
- import fs from "node:fs/promises";
2
- import { supportsTsNocheckAudit } from "../../../shared/languages.js";
3
- import { createRuleProgress, emitRuleChunk, emitRuleCompleted } from "../../progress.js";
4
- import { buildStrippedProgram, getSemanticDiagnosticCount, resolveTsconfigPath } from "./program.js";
5
- import { findLeadingTsNocheckLine, removeLeadingTsNocheckLine } from "./pragma.js";
6
- async function findUnnecessaryPragmaFiles(sourceFiles, options, stage) {
7
- const progress = createRuleProgress({
8
- observer: options.progressObserver,
9
- rule: "ts-nocheck-audit",
10
- stage,
11
- totalItems: sourceFiles.length,
12
- });
13
- const candidates = [];
14
- for (let index = 0; index < sourceFiles.length; index += 1) {
15
- const file = sourceFiles[index];
16
- if (!supportsTsNocheckAudit(file.extension)) {
17
- emitRuleChunk(progress, index + 1, candidates.length);
18
- continue;
19
- }
20
- const text = await fs.readFile(file.absolutePath, "utf8");
21
- if (findLeadingTsNocheckLine(text)) {
22
- candidates.push({ file, text });
23
- }
24
- emitRuleChunk(progress, index + 1, candidates.length);
25
- }
26
- if (candidates.length === 0) {
27
- emitRuleCompleted(progress, 0);
28
- return [];
29
- }
30
- const tsconfigPath = resolveTsconfigPath(options.projectRoot, options.rules.tsNocheckAudit?.tsconfigPath);
31
- const program = await buildStrippedProgram({
32
- tsconfigPath,
33
- candidates: candidates.map(({ file, text }) => ({ absolutePath: file.absolutePath, text })),
34
- });
35
- const unnecessary = [];
36
- for (const candidate of candidates) {
37
- const diagnosticCount = getSemanticDiagnosticCount(program, candidate.file.absolutePath);
38
- if (diagnosticCount !== 0)
39
- continue;
40
- const { text: strippedText, removed } = removeLeadingTsNocheckLine(candidate.text);
41
- if (!removed)
42
- continue;
43
- unnecessary.push({ file: candidate.file, strippedText });
44
- }
45
- emitRuleCompleted(progress, unnecessary.length);
46
- return unnecessary;
47
- }
48
- function createTsNocheckAuditViolation(file) {
49
- return {
50
- rule: "ts-nocheck-audit",
51
- fix: true,
52
- filePath: file.relativeFromProjectRoot,
53
- message: "@ts-nocheck is unnecessary — no diagnostics are reported without it",
54
- details: {
55
- diagnosticCount: 0,
56
- },
57
- };
58
- }
59
- async function collectTsNocheckAuditViolations(sourceFiles, options) {
60
- const unnecessary = await findUnnecessaryPragmaFiles(sourceFiles, options, "scan");
61
- return unnecessary.map(({ file }) => createTsNocheckAuditViolation(file));
62
- }
63
- async function fixTsNocheckAuditRule(sourceFiles, options) {
64
- const unnecessary = await findUnnecessaryPragmaFiles(sourceFiles, options, "fix");
65
- for (const { file, strippedText } of unnecessary) {
66
- await fs.writeFile(file.absolutePath, strippedText, "utf8");
67
- }
68
- return {
69
- ok: true,
70
- violationCount: 0,
71
- violations: [],
72
- rewritten_files: unnecessary.length,
73
- };
74
- }
75
- export { collectTsNocheckAuditViolations, fixTsNocheckAuditRule };
76
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/checks/rules/ts-nocheck-audit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIlC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAOnF,KAAK,UAAU,0BAA0B,CACvC,WAAgC,EAChC,OAA6C,EAC7C,KAAqB;IAErB,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,QAAQ,EAAE,OAAO,CAAC,gBAAgB;QAClC,IAAI,EAAE,kBAAkB;QACxB,KAAK;QACL,UAAU,EAAE,WAAW,CAAC,MAAM;KAC/B,CAAC,CAAC;IAEH,MAAM,UAAU,GAAqD,EAAE,CAAC;IAExE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC1G,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC;QACzC,YAAY;QACZ,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5F,CAAC,CAAC;IAEH,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzF,IAAI,eAAe,KAAK,CAAC;YAAE,SAAS;QAEpC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAuB;IAC5D,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,IAAI,CAAC,uBAAuB;QACtC,OAAO,EAAE,qEAAqE;QAC9E,OAAO,EAAE;YACP,eAAe,EAAE,CAAC;SACnB;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,WAAgC,EAChC,OAA6C;IAE7C,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,WAAgC,EAChC,OAA6C;IAE7C,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAElF,KAAK,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,WAAW,EAAE,CAAC;QACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,WAAW,CAAC,MAAM;KACpC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,12 +0,0 @@
1
- type PragmaLineRange = {
2
- start: number;
3
- end: number;
4
- };
5
- declare function findLeadingTsNocheckLine(text: string): PragmaLineRange | null;
6
- declare function removeLeadingTsNocheckLine(text: string): {
7
- text: string;
8
- removed: boolean;
9
- };
10
- export { findLeadingTsNocheckLine, removeLeadingTsNocheckLine };
11
- export type { PragmaLineRange };
12
- //# sourceMappingURL=pragma.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pragma.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/ts-nocheck-audit/pragma.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,iBAAS,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA0BtE;AAED,iBAAS,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAQpF;AAED,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -1,33 +0,0 @@
1
- const TS_NOCHECK_LINE_PATTERN = /^\/\/\s*@ts-nocheck(?:\s.*)?$/;
2
- function findLeadingTsNocheckLine(text) {
3
- let cursor = 0;
4
- if (text.startsWith("#!")) {
5
- const shebangEnd = text.indexOf("\n");
6
- cursor = shebangEnd === -1 ? text.length : shebangEnd + 1;
7
- }
8
- while (cursor < text.length) {
9
- const newlineIndex = text.indexOf("\n", cursor);
10
- const lineEnd = newlineIndex === -1 ? text.length : newlineIndex;
11
- const line = text.slice(cursor, lineEnd);
12
- if (line.trim() === "") {
13
- cursor = newlineIndex === -1 ? text.length : newlineIndex + 1;
14
- continue;
15
- }
16
- if (TS_NOCHECK_LINE_PATTERN.test(line.trim())) {
17
- return { start: cursor, end: newlineIndex === -1 ? text.length : newlineIndex + 1 };
18
- }
19
- return null;
20
- }
21
- return null;
22
- }
23
- function removeLeadingTsNocheckLine(text) {
24
- const range = findLeadingTsNocheckLine(text);
25
- if (!range)
26
- return { text, removed: false };
27
- return {
28
- text: text.slice(0, range.start) + text.slice(range.end),
29
- removed: true,
30
- };
31
- }
32
- export { findLeadingTsNocheckLine, removeLeadingTsNocheckLine };
33
- //# sourceMappingURL=pragma.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pragma.js","sourceRoot":"","sources":["../../../../src/checks/rules/ts-nocheck-audit/pragma.ts"],"names":[],"mappings":"AAAA,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAOhE,SAAS,wBAAwB,CAAC,IAAY;IAC5C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvB,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACtF,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QACxD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,CAAC"}
@@ -1,14 +0,0 @@
1
- import ts from "typescript";
2
- import { resolveTsconfigPath } from "../../../runtime/tsconfig-paths.js";
3
- type StrippedProgramCandidate = {
4
- absolutePath: string;
5
- text: string;
6
- };
7
- declare function buildStrippedProgram(args: {
8
- tsconfigPath: string;
9
- candidates: StrippedProgramCandidate[];
10
- }): Promise<ts.Program>;
11
- declare function getSemanticDiagnosticCount(program: ts.Program, absolutePath: string): number;
12
- export { buildStrippedProgram, getSemanticDiagnosticCount, resolveTsconfigPath };
13
- export type { StrippedProgramCandidate };
14
- //# sourceMappingURL=program.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/ts-nocheck-audit/program.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAKzE,KAAK,wBAAwB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAqBF,iBAAe,oBAAoB,CAAC,IAAI,EAAE;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,wBAAwB,EAAE,CAAC;CACxC,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CA2BtB;AAED,iBAAS,0BAA0B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAKrF;AAED,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,CAAC;AACjF,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,50 +0,0 @@
1
- import path from "node:path";
2
- import ts from "typescript";
3
- import { resolveScriptKind } from "../../../imports/module-specifiers.js";
4
- import { resolveTsconfigPath } from "../../../runtime/tsconfig-paths.js";
5
- import { InvalidTsconfigPathError } from "../../../shared/errors.js";
6
- import { pathExists } from "../../../shared/utils.js";
7
- import { removeLeadingTsNocheckLine } from "./pragma.js";
8
- function createStrippedCompilerHost(compilerOptions, strippedTextByPath) {
9
- const host = ts.createCompilerHost(compilerOptions, true);
10
- const originalGetSourceFile = host.getSourceFile.bind(host);
11
- host.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) => {
12
- const overrideText = strippedTextByPath.get(path.resolve(fileName));
13
- if (overrideText === undefined) {
14
- return originalGetSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile);
15
- }
16
- return ts.createSourceFile(fileName, overrideText, languageVersionOrOptions, true, resolveScriptKind(fileName));
17
- };
18
- return host;
19
- }
20
- async function buildStrippedProgram(args) {
21
- if (!await pathExists(args.tsconfigPath)) {
22
- throw new InvalidTsconfigPathError(args.tsconfigPath);
23
- }
24
- const configFile = ts.readConfigFile(args.tsconfigPath, ts.sys.readFile);
25
- if (configFile.error) {
26
- throw new InvalidTsconfigPathError(args.tsconfigPath);
27
- }
28
- const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, path.dirname(args.tsconfigPath));
29
- const strippedTextByPath = new Map();
30
- for (const candidate of args.candidates) {
31
- const stripped = removeLeadingTsNocheckLine(candidate.text);
32
- if (stripped.removed) {
33
- strippedTextByPath.set(path.resolve(candidate.absolutePath), stripped.text);
34
- }
35
- }
36
- const rootNames = Array.from(new Set([
37
- ...parsed.fileNames,
38
- ...args.candidates.map((candidate) => path.resolve(candidate.absolutePath)),
39
- ]));
40
- const host = createStrippedCompilerHost(parsed.options, strippedTextByPath);
41
- return ts.createProgram({ rootNames, options: parsed.options, host });
42
- }
43
- function getSemanticDiagnosticCount(program, absolutePath) {
44
- const sourceFile = program.getSourceFile(path.resolve(absolutePath));
45
- if (!sourceFile)
46
- return -1;
47
- return program.getSemanticDiagnostics(sourceFile).length;
48
- }
49
- export { buildStrippedProgram, getSemanticDiagnosticCount, resolveTsconfigPath };
50
- //# sourceMappingURL=program.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../../src/checks/rules/ts-nocheck-audit/program.ts"],"names":[],"mappings":"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"}