eslint-interactive 12.0.0 → 13.0.1

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 (133) hide show
  1. package/README.md +34 -58
  2. package/bin/eslint-interactive.js +8 -11
  3. package/dist/action/index.d.ts +0 -2
  4. package/dist/action/index.d.ts.map +1 -1
  5. package/dist/action/index.js +0 -2
  6. package/dist/action/index.js.map +1 -1
  7. package/dist/action/print-result-details.d.ts.map +1 -1
  8. package/dist/action/print-result-details.js +6 -1
  9. package/dist/action/print-result-details.js.map +1 -1
  10. package/dist/cli/log.d.ts +3 -3
  11. package/dist/cli/log.d.ts.map +1 -1
  12. package/dist/cli/log.js +5 -4
  13. package/dist/cli/log.js.map +1 -1
  14. package/dist/cli/parse-argv.d.ts +2 -22
  15. package/dist/cli/parse-argv.d.ts.map +1 -1
  16. package/dist/cli/parse-argv.js +37 -43
  17. package/dist/cli/parse-argv.js.map +1 -1
  18. package/dist/cli/prompt.d.ts +1 -11
  19. package/dist/cli/prompt.d.ts.map +1 -1
  20. package/dist/cli/prompt.js +3 -44
  21. package/dist/cli/prompt.js.map +1 -1
  22. package/dist/cli/run.d.ts.map +1 -1
  23. package/dist/cli/run.js +6 -20
  24. package/dist/cli/run.js.map +1 -1
  25. package/dist/core-worker.d.ts +2 -4
  26. package/dist/core-worker.d.ts.map +1 -1
  27. package/dist/core-worker.js +3 -10
  28. package/dist/core-worker.js.map +1 -1
  29. package/dist/core.d.ts +8 -5
  30. package/dist/core.d.ts.map +1 -1
  31. package/dist/core.js +61 -47
  32. package/dist/core.js.map +1 -1
  33. package/dist/eslint/linter.d.ts +2 -3
  34. package/dist/eslint/linter.d.ts.map +1 -1
  35. package/dist/eslint/linter.js.map +1 -1
  36. package/dist/eslint/source-code-fixer.d.ts +1 -5
  37. package/dist/eslint/source-code-fixer.d.ts.map +1 -1
  38. package/dist/fix/make-fixable-and-fix.d.ts +2 -3
  39. package/dist/fix/make-fixable-and-fix.d.ts.map +1 -1
  40. package/dist/fix/make-fixable-and-fix.js +14 -41
  41. package/dist/fix/make-fixable-and-fix.js.map +1 -1
  42. package/dist/formatter/format-by-files.d.ts.map +1 -1
  43. package/dist/formatter/format-by-files.js +1 -0
  44. package/dist/formatter/format-by-files.js.map +1 -1
  45. package/dist/formatter/format-by-rules.d.ts +6 -1
  46. package/dist/formatter/format-by-rules.d.ts.map +1 -1
  47. package/dist/formatter/format-by-rules.js +7 -2
  48. package/dist/formatter/format-by-rules.js.map +1 -1
  49. package/dist/formatter/index.d.ts +3 -1
  50. package/dist/formatter/index.d.ts.map +1 -1
  51. package/dist/formatter/index.js +3 -2
  52. package/dist/formatter/index.js.map +1 -1
  53. package/dist/formatter/sort-rule-statistics.d.ts +5 -0
  54. package/dist/formatter/sort-rule-statistics.d.ts.map +1 -0
  55. package/dist/formatter/sort-rule-statistics.js +34 -0
  56. package/dist/formatter/sort-rule-statistics.js.map +1 -0
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +2 -2
  60. package/dist/index.js.map +1 -1
  61. package/dist/plugin.d.ts.map +1 -1
  62. package/dist/plugin.js +14 -0
  63. package/dist/plugin.js.map +1 -1
  64. package/dist/scene/lint.d.ts.map +1 -1
  65. package/dist/scene/lint.js +13 -14
  66. package/dist/scene/lint.js.map +1 -1
  67. package/dist/scene/select-action.d.ts.map +1 -1
  68. package/dist/scene/select-action.js +3 -9
  69. package/dist/scene/select-action.js.map +1 -1
  70. package/dist/type.d.ts +12 -0
  71. package/dist/type.d.ts.map +1 -0
  72. package/dist/type.js +2 -0
  73. package/dist/type.js.map +1 -0
  74. package/dist/util/eslint.d.ts.map +1 -1
  75. package/dist/util/eslint.js +1 -1
  76. package/dist/util/eslint.js.map +1 -1
  77. package/dist/util/type-check.d.ts +0 -3
  78. package/dist/util/type-check.d.ts.map +1 -1
  79. package/package.json +20 -20
  80. package/src/action/index.ts +0 -2
  81. package/src/action/print-result-details.ts +7 -1
  82. package/src/cli/log.ts +5 -4
  83. package/src/cli/parse-argv.ts +45 -61
  84. package/src/cli/prompt.ts +4 -48
  85. package/src/cli/run.ts +6 -22
  86. package/src/core-worker.ts +6 -21
  87. package/src/core.ts +52 -50
  88. package/src/eslint/linter.ts +2 -3
  89. package/src/fix/make-fixable-and-fix.ts +15 -47
  90. package/src/formatter/format-by-files.ts +1 -0
  91. package/src/formatter/format-by-rules.ts +18 -3
  92. package/src/formatter/index.ts +8 -3
  93. package/src/formatter/sort-rule-statistics.ts +35 -0
  94. package/src/index.ts +2 -2
  95. package/src/plugin.ts +14 -0
  96. package/src/scene/lint.ts +16 -18
  97. package/src/scene/select-action.ts +1 -8
  98. package/src/type.ts +13 -0
  99. package/src/util/eslint.ts +2 -2
  100. package/src/util/type-check.ts +0 -4
  101. package/bin/_eslint-interactive.js +0 -9
  102. package/dist/action/apply-suggestions.d.ts +0 -6
  103. package/dist/action/apply-suggestions.d.ts.map +0 -1
  104. package/dist/action/apply-suggestions.js +0 -27
  105. package/dist/action/apply-suggestions.js.map +0 -1
  106. package/dist/action/make-fixable-and-fix.d.ts +0 -6
  107. package/dist/action/make-fixable-and-fix.d.ts.map +0 -1
  108. package/dist/action/make-fixable-and-fix.js +0 -27
  109. package/dist/action/make-fixable-and-fix.js.map +0 -1
  110. package/dist/config.d.ts +0 -47
  111. package/dist/config.d.ts.map +0 -1
  112. package/dist/config.js +0 -98
  113. package/dist/config.js.map +0 -1
  114. package/dist/eslint/use-at-your-own-risk.d.ts +0 -5
  115. package/dist/eslint/use-at-your-own-risk.d.ts.map +0 -1
  116. package/dist/eslint/use-at-your-own-risk.js +0 -6
  117. package/dist/eslint/use-at-your-own-risk.js.map +0 -1
  118. package/dist/util/file-system.d.ts +0 -5
  119. package/dist/util/file-system.d.ts.map +0 -1
  120. package/dist/util/file-system.js +0 -10
  121. package/dist/util/file-system.js.map +0 -1
  122. package/dist/util/filter-script.d.ts +0 -6
  123. package/dist/util/filter-script.d.ts.map +0 -1
  124. package/dist/util/filter-script.js +0 -38
  125. package/dist/util/filter-script.js.map +0 -1
  126. package/src/action/apply-suggestions.ts +0 -39
  127. package/src/action/make-fixable-and-fix.ts +0 -39
  128. package/src/config.ts +0 -142
  129. package/src/eslint/use-at-your-own-risk.js +0 -6
  130. package/src/util/file-system.ts +0 -10
  131. package/src/util/filter-script.ts +0 -45
  132. package/static/example-filter-script.js +0 -40
  133. package/static/example-fixable-maker-script.js +0 -38
package/dist/cli/run.js CHANGED
@@ -3,38 +3,24 @@ import { fileURLToPath } from 'node:url';
3
3
  import { Worker } from 'node:worker_threads';
4
4
  import { wrap } from 'comlink';
5
5
  import nodeEndpoint from 'comlink/dist/esm/node-adapter.mjs';
6
- import isInstalledGlobally from 'is-installed-globally';
7
6
  import terminalLink from 'terminal-link';
8
- import { warn } from '../cli/log.js';
9
7
  import { parseArgv } from '../cli/parse-argv.js';
10
- import { translateCLIOptions } from '../config.js';
11
- import { shouldUseFlatConfig } from '../eslint/use-at-your-own-risk.js';
12
8
  import { checkResults, lint, selectAction, selectRuleIds } from '../scene/index.js';
13
9
  /**
14
10
  * Run eslint-interactive.
15
11
  */
16
12
  export async function run(options) {
17
- if (isInstalledGlobally) {
18
- warn('eslint-interactive is installed globally. ' +
19
- 'The globally installed eslint-interactive is not officially supported because some features do not work. ' +
20
- 'It is recommended to install eslint-interactive locally.');
21
- }
22
- const parsedCLIOptions = parseArgv(options.argv);
23
- // eslint-disable-next-line @typescript-eslint/no-deprecated
24
- const usingFlatConfig = await shouldUseFlatConfig();
25
- const config = translateCLIOptions(parsedCLIOptions, usingFlatConfig ? 'flat' : 'eslintrc');
13
+ const config = parseArgv(options.argv);
26
14
  // Directly executing the Core API will hog the main thread and halt the spinner.
27
15
  // So we wrap it with comlink and run it on the Worker.
28
16
  const worker = new Worker(join(dirname(fileURLToPath(import.meta.url)), '..', 'core-worker.js'), {
29
17
  env: {
30
- ...process.env,
31
- // NOTE:
32
- // - `terminal-link` uses `supports-hyperlinks` and `supports-color` to determine if a terminal that supports hyperlinks is in use.
33
- // - If the terminal does not support hyperlinks, it will fallback to not print the link.
34
- // - However, due to the specifications of Node.js, the decision does not work well on worker_threads.
35
- // - So here we use a special environment variable to force the printing mode to be switched.
36
- // ref: https://github.com/chalk/supports-color/issues/97, https://github.com/nodejs/node/issues/26946
18
+ // In worker threads, stdin is recognized as noTTY. Therefore, `util.styleText` and `terminalLink` disable colors and links.
19
+ // To work around this, we use environment variables to force colors and links to be enabled.
20
+ // ref: https://github.com/nodejs/node/issues/26946
21
+ FORCE_COLOR: process.stdin.isTTY ? '1' : '0',
37
22
  FORCE_HYPERLINK: terminalLink.isSupported ? '1' : '0',
23
+ ...process.env,
38
24
  },
39
25
  // NOTE: Pass CLI options (--unhandled-rejections=strict, etc.) to the worker
40
26
  execArgv: process.execArgv,
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMpF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAgB;IACxC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,iFAAiF;IACjF,uDAAuD;IACvD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE;QAC/F,GAAG,EAAE;YACH,4HAA4H;YAC5H,6FAA6F;YAC7F,mDAAmD;YACnD,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC5C,eAAe,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YACrD,GAAG,OAAO,CAAC,GAAG;SACf;QACD,6EAA6E;QAC7E,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,8DAA8D;IAC9D,MAAM,WAAW,GAAG,IAAI,CAA2B,YAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IAE3C,IAAI,SAAS,GAAc,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC5C,OAAO,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACjC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9B,4CAA4C;YAC5C,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC9C,4CAA4C;YAC5C,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC7C,4CAA4C;YAC5C,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC7C,4CAA4C;YAC5C,SAAS,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AAC3B,CAAC"}
@@ -1,6 +1,5 @@
1
- import type { ESLint } from 'eslint';
2
- import type { Config } from './config.js';
3
1
  import { Core } from './core.js';
2
+ import type { Config } from './type.js';
4
3
  /**
5
4
  * This is a wrapper for using the Core API from comlink.
6
5
  *
@@ -12,12 +11,11 @@ export declare class SerializableCore {
12
11
  constructor(config: Config);
13
12
  lint(...args: Parameters<Core['lint']>): ReturnType<Core['lint']>;
14
13
  formatResultSummary(...args: Parameters<Core['formatResultSummary']>): ReturnType<Core['formatResultSummary']>;
14
+ getSortedRuleIdsInResults(...args: Parameters<Core['getSortedRuleIdsInResults']>): ReturnType<Core['getSortedRuleIdsInResults']>;
15
15
  formatResultDetails(...args: Parameters<Core['formatResultDetails']>): ReturnType<Core['formatResultDetails']>;
16
16
  applyAutoFixes(...args: Parameters<Core['applyAutoFixes']>): ReturnType<Core['applyAutoFixes']>;
17
17
  disablePerLine(...args: Parameters<Core['disablePerLine']>): ReturnType<Core['disablePerLine']>;
18
18
  disablePerFile(...args: Parameters<Core['disablePerFile']>): ReturnType<Core['disablePerFile']>;
19
19
  convertErrorToWarningPerFile(...args: Parameters<Core['convertErrorToWarningPerFile']>): ReturnType<Core['convertErrorToWarningPerFile']>;
20
- applySuggestions(results: ESLint.LintResult[], ruleIds: string[], filterScript: string): ReturnType<Core['applySuggestions']>;
21
- makeFixableAndFix(results: ESLint.LintResult[], ruleIds: string[], fixableMakerScript: string): ReturnType<Core['makeFixableAndFix']>;
22
20
  }
23
21
  //# sourceMappingURL=core-worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-worker.d.ts","sourceRoot":"","sources":["../src/core-worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACR,MAAM,EAAE,MAAM;IAGpB,IAAI,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAGvE,mBAAmB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAGxG,mBAAmB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAG9G,cAAc,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAG/F,cAAc,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAG/F,cAAc,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAG/F,4BAA4B,CAChC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,GACxD,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAG7C,gBAAgB,CACpB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,GACnB,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAKjC,iBAAiB,CACrB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,kBAAkB,EAAE,MAAM,GACzB,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;CAKzC"}
1
+ {"version":3,"file":"core-worker.d.ts","sourceRoot":"","sources":["../src/core-worker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAQxC;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACR,MAAM,EAAE,MAAM;IAGpB,IAAI,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAGvE,mBAAmB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAG9G,yBAAyB,CACvB,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,GACrD,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAG1C,mBAAmB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAG9G,cAAc,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAG/F,cAAc,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAG/F,cAAc,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAG/F,4BAA4B,CAChC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,GACxD,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;CAGpD"}
@@ -23,6 +23,9 @@ export class SerializableCore {
23
23
  formatResultSummary(...args) {
24
24
  return this.core.formatResultSummary(...args);
25
25
  }
26
+ getSortedRuleIdsInResults(...args) {
27
+ return this.core.getSortedRuleIdsInResults(...args);
28
+ }
26
29
  async formatResultDetails(...args) {
27
30
  return this.core.formatResultDetails(...args);
28
31
  }
@@ -38,16 +41,6 @@ export class SerializableCore {
38
41
  async convertErrorToWarningPerFile(...args) {
39
42
  return proxy(await this.core.convertErrorToWarningPerFile(...args));
40
43
  }
41
- async applySuggestions(results, ruleIds, filterScript) {
42
- // eslint-disable-next-line no-eval -- TODO: replace with a better solution
43
- const filter = eval(filterScript);
44
- return proxy(await this.core.applySuggestions(results, ruleIds, filter));
45
- }
46
- async makeFixableAndFix(results, ruleIds, fixableMakerScript) {
47
- // eslint-disable-next-line no-eval -- TODO: replace with a better solution
48
- const fixableMaker = eval(fixableMakerScript);
49
- return proxy(await this.core.makeFixableAndFix(results, ruleIds, fixableMaker));
50
- }
51
44
  }
52
45
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
46
  expose(SerializableCore, nodeEndpoint(parentPort));
@@ -1 +1 @@
1
- {"version":3,"file":"core-worker.js","sourceRoot":"","sources":["../src/core-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAG7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;GAEG;AAEH,IAAI,UAAU,KAAK,IAAI;IAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAErF;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAE3B,YAAY,MAAc;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAA8B;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,mBAAmB,CAAC,GAAG,IAA6C;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,GAAG,IAA6C;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAwC;QAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAwC;QAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAwC;QAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,4BAA4B,CAChC,GAAG,IAAsD;QAEzD,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,KAAK,CAAC,gBAAgB,CACpB,OAA4B,EAC5B,OAAiB,EACjB,YAAoB;QAEpB,2EAA2E;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAqB,CAAC;QACtD,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,CAAC,iBAAiB,CACrB,OAA4B,EAC5B,OAAiB,EACjB,kBAA0B;QAE1B,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAiB,CAAC;QAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAClF,CAAC;CACF;AAED,8DAA8D;AAC9D,MAAM,CAAC,gBAAgB,EAAG,YAAoB,CAAC,UAAU,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"core-worker.js","sourceRoot":"","sources":["../src/core-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;GAEG;AAEH,IAAI,UAAU,KAAK,IAAI;IAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAErF;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAE3B,YAAY,MAAc;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAA8B;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,mBAAmB,CAAC,GAAG,IAA6C;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,yBAAyB,CACvB,GAAG,IAAmD;QAEtD,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,GAAG,IAA6C;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAwC;QAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAwC;QAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAwC;QAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,4BAA4B,CAChC,GAAG,IAAsD;QAEzD,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAED,8DAA8D;AAC9D,MAAM,CAAC,gBAAgB,EAAG,YAAoB,CAAC,UAAU,CAAC,CAAC,CAAC"}
package/dist/core.d.ts CHANGED
@@ -1,16 +1,14 @@
1
- import type { ESLint } from 'eslint';
1
+ import { ESLint } from 'eslint';
2
2
  import type { DescriptionPosition } from './cli/prompt.js';
3
- import type { Config, NormalizedConfig } from './config.js';
4
- import { FlatESLint, LegacyESLint } from './eslint/use-at-your-own-risk.js';
5
3
  import type { FixableMaker, SuggestionFilter } from './fix/index.js';
4
+ import type { Config } from './type.js';
6
5
  export type Undo = () => Promise<void>;
7
6
  /**
8
7
  * The core of eslint-interactive.
9
8
  * It uses ESLint's Node.js API to output a summary of problems, fix problems, apply suggestions, etc.
10
9
  */
11
10
  export declare class Core {
12
- readonly config: NormalizedConfig;
13
- readonly eslint: InstanceType<typeof FlatESLint> | InstanceType<typeof LegacyESLint>;
11
+ #private;
14
12
  constructor(config: Config);
15
13
  /**
16
14
  * Lint project.
@@ -22,6 +20,11 @@ export declare class Core {
22
20
  * @param results The lint results of the project to print summary
23
21
  */
24
22
  formatResultSummary(results: ESLint.LintResult[]): string;
23
+ /**
24
+ * Returns ruleIds from lint results, sorted according to the configured sort options.
25
+ * @param results The lint results of the project
26
+ */
27
+ getSortedRuleIdsInResults(results: ESLint.LintResult[]): string[];
25
28
  /**
26
29
  * Returns details of lint results.
27
30
  * @param results The lint results of the project to print summary
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAc,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA0BjF,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvC;;;GAGG;AACH,qBAAa,IAAI;IACf,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,UAAU,CAAC,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;gBAEzE,MAAM,EAAE,MAAM;IA0C1B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAM1C;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM;IAKzD;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAMpG;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF;;;;;;OAMG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,IAAI,CAAC;IAMhB;;;;;;OAMG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,IAAI,CAAC;IAMhB;;;;;OAKG;IACG,4BAA4B,CAChC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhH;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAInH;;;OAGG;YACW,GAAG;CA2BlB"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAc,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAYjF,OAAO,KAAK,EAAE,MAAM,EAAwB,MAAM,WAAW,CAAC;AAe9D,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvC;;;GAGG;AACH,qBAAa,IAAI;;gBASH,MAAM,EAAE,MAAM;IA6B1B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAM1C;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM;IAKzD;;;OAGG;IACH,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,EAAE;IAQjE;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKpG;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF;;;;;;OAMG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,IAAI,CAAC;IAMhB;;;;;;OAMG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,OAAO,CAAC,IAAI,CAAC;IAMhB;;;;;OAKG;IACG,4BAA4B,CAChC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhH;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAInH;;;OAGG;YACW,GAAG;CA2BlB"}
package/dist/core.js CHANGED
@@ -1,8 +1,19 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _Core_cwd, _Core_patterns, _Core_quiet, _Core_formatterName, _Core_sort, _Core_sortOrder, _Core_eslint;
1
13
  import { writeFile } from 'node:fs/promises';
2
- import { normalizeConfig } from './config.js';
3
- import { FlatESLint, LegacyESLint } from './eslint/use-at-your-own-risk.js';
14
+ import { ESLint } from 'eslint';
4
15
  import { createFixToApplyAutoFixes, createFixToApplySuggestions, createFixToConvertErrorToWarningPerFile, createFixToDisablePerFile, createFixToDisablePerLine, createFixToMakeFixableAndFix, verifyAndFix, } from './fix/index.js';
5
- import { format } from './formatter/index.js';
16
+ import { format, sortRuleStatistics, takeRuleStatistics } from './formatter/index.js';
6
17
  import { plugin } from './plugin.js';
7
18
  import { filterResultsByRuleId } from './util/eslint.js';
8
19
  /**
@@ -22,54 +33,46 @@ function generateResultsToUndo(resultsOfLint) {
22
33
  */
23
34
  export class Core {
24
35
  constructor(config) {
25
- this.config = normalizeConfig(config);
26
- const eslintOptions = this.config.eslintOptions;
27
- if (eslintOptions.type === 'eslintrc') {
28
- const { type, ...rest } = eslintOptions;
29
- this.eslint = new LegacyESLint({
30
- ...rest,
31
- plugins: {
32
- ...rest.plugins,
33
- 'eslint-interactive': plugin,
34
- },
35
- overrideConfig: {
36
- ...rest.overrideConfig,
37
- plugins: [...(rest.overrideConfig?.plugins ?? []), 'eslint-interactive'],
36
+ _Core_cwd.set(this, void 0);
37
+ _Core_patterns.set(this, void 0);
38
+ _Core_quiet.set(this, void 0);
39
+ _Core_formatterName.set(this, void 0);
40
+ _Core_sort.set(this, void 0);
41
+ _Core_sortOrder.set(this, void 0);
42
+ _Core_eslint.set(this, void 0);
43
+ __classPrivateFieldSet(this, _Core_cwd, config.cwd ?? process.cwd(), "f");
44
+ __classPrivateFieldSet(this, _Core_patterns, config.patterns, "f");
45
+ __classPrivateFieldSet(this, _Core_quiet, config.quiet ?? false, "f");
46
+ __classPrivateFieldSet(this, _Core_formatterName, config.formatterName, "f");
47
+ __classPrivateFieldSet(this, _Core_sort, config.sort, "f");
48
+ __classPrivateFieldSet(this, _Core_sortOrder, config.sortOrder, "f");
49
+ // NOTE: Passing an option that does not exist to `new ESLint(...)` will throw an error.
50
+ // Therefore, only options supported by ESLint are extracted into the `eslintOptions` variable.
51
+ const { formatterName, patterns, quiet, sort, sortOrder, ...eslintOptions } = config;
52
+ const overrideConfigs = Array.isArray(eslintOptions.overrideConfig) ? eslintOptions.overrideConfig
53
+ : eslintOptions.overrideConfig ? [eslintOptions.overrideConfig]
54
+ : [];
55
+ __classPrivateFieldSet(this, _Core_eslint, new ESLint({
56
+ ...eslintOptions,
57
+ overrideConfig: [
58
+ ...overrideConfigs,
59
+ {
60
+ plugins: { 'eslint-interactive': plugin },
38
61
  rules: {
39
- ...rest.overrideConfig?.rules,
40
62
  'eslint-interactive/source-code-snatcher': 'error',
41
63
  },
42
64
  },
43
- });
44
- }
45
- else {
46
- const { type, ...rest } = eslintOptions;
47
- const overrideConfigs = Array.isArray(rest.overrideConfig) ? rest.overrideConfig
48
- : rest.overrideConfig ? [rest.overrideConfig]
49
- : [];
50
- this.eslint = new FlatESLint({
51
- ...rest,
52
- overrideConfig: [
53
- ...overrideConfigs,
54
- {
55
- ...rest.overrideConfig,
56
- plugins: { 'eslint-interactive': plugin },
57
- rules: {
58
- 'eslint-interactive/source-code-snatcher': 'error',
59
- },
60
- },
61
- ],
62
- });
63
- }
65
+ ],
66
+ }), "f");
64
67
  }
65
68
  /**
66
69
  * Lint project.
67
70
  * @returns The results of linting
68
71
  */
69
72
  async lint() {
70
- let results = await this.eslint.lintFiles(this.config.patterns);
71
- if (this.config.quiet)
72
- results = LegacyESLint.getErrorResults(results);
73
+ let results = await __classPrivateFieldGet(this, _Core_eslint, "f").lintFiles(__classPrivateFieldGet(this, _Core_patterns, "f"));
74
+ if (__classPrivateFieldGet(this, _Core_quiet, "f"))
75
+ results = ESLint.getErrorResults(results);
73
76
  return results;
74
77
  }
75
78
  /**
@@ -77,8 +80,19 @@ export class Core {
77
80
  * @param results The lint results of the project to print summary
78
81
  */
79
82
  formatResultSummary(results) {
80
- const rulesMeta = this.eslint.getRulesMetaForResults(results);
81
- return format(results, { rulesMeta, cwd: this.config.cwd });
83
+ const rulesMeta = __classPrivateFieldGet(this, _Core_eslint, "f").getRulesMetaForResults(results);
84
+ return format(results, { rulesMeta, cwd: __classPrivateFieldGet(this, _Core_cwd, "f") }, { sort: __classPrivateFieldGet(this, _Core_sort, "f"), sortOrder: __classPrivateFieldGet(this, _Core_sortOrder, "f") });
85
+ }
86
+ /**
87
+ * Returns ruleIds from lint results, sorted according to the configured sort options.
88
+ * @param results The lint results of the project
89
+ */
90
+ getSortedRuleIdsInResults(results) {
91
+ let ruleStatistics = takeRuleStatistics(results);
92
+ if (__classPrivateFieldGet(this, _Core_sort, "f")) {
93
+ ruleStatistics = sortRuleStatistics(ruleStatistics, __classPrivateFieldGet(this, _Core_sort, "f"), __classPrivateFieldGet(this, _Core_sortOrder, "f"));
94
+ }
95
+ return ruleStatistics.map((s) => s.ruleId);
82
96
  }
83
97
  /**
84
98
  * Returns details of lint results.
@@ -86,8 +100,7 @@ export class Core {
86
100
  * @param ruleIds The rule ids to print details
87
101
  */
88
102
  async formatResultDetails(results, ruleIds) {
89
- const formatterName = this.config.formatterName;
90
- const formatter = await this.eslint.loadFormatter(formatterName);
103
+ const formatter = await __classPrivateFieldGet(this, _Core_eslint, "f").loadFormatter(__classPrivateFieldGet(this, _Core_formatterName, "f"));
91
104
  return formatter.format(filterResultsByRuleId(results, ruleIds));
92
105
  }
93
106
  /**
@@ -156,7 +169,7 @@ export class Core {
156
169
  if (!source)
157
170
  throw new Error('Source code is required to apply fixes.');
158
171
  // eslint-disable-next-line no-await-in-loop
159
- const fixedResult = await verifyAndFix(this.eslint, source, filePath, ruleIds, fixCreator);
172
+ const fixedResult = await verifyAndFix(__classPrivateFieldGet(this, _Core_eslint, "f"), source, filePath, ruleIds, fixCreator);
160
173
  // Write the fixed source code to the file
161
174
  if (fixedResult.fixed) {
162
175
  // eslint-disable-next-line no-await-in-loop
@@ -165,8 +178,9 @@ export class Core {
165
178
  }
166
179
  return async () => {
167
180
  const resultsToUndo = generateResultsToUndo(filteredResultsOfLint);
168
- await LegacyESLint.outputFixes(resultsToUndo);
181
+ await ESLint.outputFixes(resultsToUndo);
169
182
  };
170
183
  }
171
184
  }
185
+ _Core_cwd = new WeakMap(), _Core_patterns = new WeakMap(), _Core_quiet = new WeakMap(), _Core_formatterName = new WeakMap(), _Core_sort = new WeakMap(), _Core_sortOrder = new WeakMap(), _Core_eslint = new WeakMap();
172
186
  //# sourceMappingURL=core.js.map
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,uCAAuC,EACvC,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,aAAkC;IAC/D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QACxC,sBAAsB;QACtB,OAAO,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAID;;;GAGG;AACH,MAAM,OAAO,IAAI;IAIf,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACtC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,aAAa,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC;gBAC7B,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,OAAO;oBACf,oBAAoB,EAAE,MAAM;iBAC7B;gBACD,cAAc,EAAE;oBACd,GAAG,IAAI,CAAC,cAAc;oBACtB,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,oBAAoB,CAAC;oBACxE,KAAK,EAAE;wBACL,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK;wBAC7B,yCAAyC,EAAE,OAAO;qBACnD;iBACF;aACF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,aAAa,CAAC;YACxC,MAAM,eAAe,GACnB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc;gBACxD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC7C,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC;gBAC3B,GAAG,IAAI;gBACP,cAAc,EAAE;oBACd,GAAG,eAAe;oBAClB;wBACE,GAAG,IAAI,CAAC,cAAc;wBACtB,OAAO,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE;wBACzC,KAAK,EAAE;4BACL,yCAAyC,EAAE,OAAO;yBACnD;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,OAA4B;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAA4B,EAAE,OAA0B;QAChF,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,OAA4B,EAAE,OAAiB;QAClE,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAClB,OAA4B,EAC5B,OAAiB,EACjB,WAAoB,EACpB,mBAAyC;QAEzC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAC5C,yBAAyB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAClB,OAA4B,EAC5B,OAAiB,EACjB,WAAoB,EACpB,mBAAyC;QAEzC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAC5C,yBAAyB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,4BAA4B,CAChC,OAA4B,EAC5B,OAAiB,EACjB,WAAoB;QAEpB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,uCAAuC,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACpH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAA4B,EAAE,OAAiB,EAAE,MAAwB;QAC9F,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAA4B,EAAE,OAAiB,EAAE,YAA0B;QACjG,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,GAAG,CACf,aAAkC,EAClC,OAAiB,EACjB,UAA+C;QAE/C,iEAAiE;QACjE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE5E,wCAAwC;QACxC,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,qBAAqB,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAExE,4CAA4C;YAC5C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAE3F,0CAA0C;YAC1C,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACtB,4CAA4C;gBAC5C,MAAM,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,OAAO,KAAK,IAAI,EAAE;YAChB,MAAM,aAAa,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;YACnE,MAAM,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,8 @@
3
3
  * @author Gyandeep Singh
4
4
  * @author aladdin-add
5
5
  */
6
- import type { Rule } from 'eslint';
6
+ import type { ESLint, Rule } from 'eslint';
7
7
  import type { FixContext } from '../fix/index.js';
8
- import type { FlatESLint, LegacyESLint } from './use-at-your-own-risk.js';
9
8
  type FixedResult = {
10
9
  fixed: boolean;
11
10
  output: string;
@@ -14,6 +13,6 @@ type FixedResult = {
14
13
  * Performs multiple autofix passes over the text until as many fixes as possible have been applied.
15
14
  * @param linter
16
15
  */
17
- export declare function verifyAndFix(eslint: InstanceType<typeof FlatESLint> | InstanceType<typeof LegacyESLint>, text: string, filePath: string, ruleIds: string[], fixCreator: (context: FixContext) => Rule.Fix[]): Promise<FixedResult>;
16
+ export declare function verifyAndFix(eslint: ESLint, text: string, filePath: string, ruleIds: string[], fixCreator: (context: FixContext) => Rule.Fix[]): Promise<FixedResult>;
18
17
  export {};
19
18
  //# sourceMappingURL=linter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/eslint/linter.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI1E,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AAEH,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,CAAC,OAAO,UAAU,CAAC,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,EAC3E,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,EAAE,GAC9C,OAAO,CAAC,WAAW,CAAC,CAuEtB"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/eslint/linter.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAOlD,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AAEH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,EAAE,GAC9C,OAAO,CAAC,WAAW,CAAC,CAuEtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/eslint/linter.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,+FAA+F;AAU/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAO9B;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA2E,EAC3E,IAAY,EACZ,QAAgB,EAChB,OAAiB,EACjB,UAA+C;IAE/C,IAAI,WAAwB,CAAC;IAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB;;;;;;;;OAQG;IACH,GAAG,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO;aACrB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aACpC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAExE,sBAAsB;QACtB,MAAM,UAAU,GAAe;YAC7B,QAAQ,EAAE,QAAQ;YAClB,UAAU;YACV,QAAQ;YACR,OAAO;YACP,KAAK,EAAE,SAAS;SACjB,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAErC,WAAW,GAAG,eAAe,CAAC,UAAU,CACtC,WAAW,EACX,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,OAAO;gBACL,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,GAAG;aACJ,CAAC;QACJ,CAAC,CAAC,EACF,IAAI,CACL,CAAC;QAEF;;;WAGG;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9D,MAAM;QACR,CAAC;QAED,yEAAyE;QACzE,KAAK,GAAG,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;QAEnC,8DAA8D;QAC9D,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;IACnC,CAAC,QAAQ,WAAW,CAAC,KAAK,IAAI,UAAU,GAAG,kBAAkB,EAAE;IAE/D,8DAA8D;IAC9D,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IAC1B,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC;IAEjC,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/eslint/linter.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,+FAA+F;AAU/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAO9B;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAY,EACZ,QAAgB,EAChB,OAAiB,EACjB,UAA+C;IAE/C,IAAI,WAAwB,CAAC;IAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB;;;;;;;;OAQG;IACH,GAAG,CAAC;QACF,UAAU,EAAE,CAAC;QAEb,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO;aACrB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aACpC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAExE,sBAAsB;QACtB,MAAM,UAAU,GAAe;YAC7B,QAAQ,EAAE,QAAQ;YAClB,UAAU;YACV,QAAQ;YACR,OAAO;YACP,KAAK,EAAE,SAAS;SACjB,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAErC,WAAW,GAAG,eAAe,CAAC,UAAU,CACtC,WAAW,EACX,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,OAAO;gBACL,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,GAAG;aACJ,CAAC;QACJ,CAAC,CAAC,EACF,IAAI,CACL,CAAC;QAEF;;;WAGG;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9D,MAAM;QACR,CAAC;QAED,yEAAyE;QACzE,KAAK,GAAG,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;QAEnC,8DAA8D;QAC9D,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;IACnC,CAAC,QAAQ,WAAW,CAAC,KAAK,IAAI,UAAU,GAAG,kBAAkB,EAAE;IAE/D,8DAA8D;IAC9D,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IAC1B,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC;IAEjC,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -9,11 +9,7 @@ import type { Linter } from 'eslint';
9
9
  */
10
10
  declare function SourceCodeFixer(): void;
11
11
  declare namespace SourceCodeFixer {
12
- var applyFixes: (sourceText: string, messages: Linter.LintMessage[], shouldFix: boolean | ((message: Linter.LintMessage) => boolean)) => {
13
- fixed: boolean;
14
- messages: Linter.LintMessage[];
15
- output: string;
16
- };
12
+ var applyFixes;
17
13
  }
18
14
  export { SourceCodeFixer };
19
15
  //# sourceMappingURL=source-code-fixer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-code-fixer.d.ts","sourceRoot":"","sources":["../../src/eslint/source-code-fixer.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAqCrC;;;GAGG;AACH,iBAAS,eAAe,SAGvB;kBAHQ,eAAe;iCAcV,MAAM,YACR,MAAM,CAAC,WAAW,EAAE,aACnB,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC;;;;;;AA0FjE,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"source-code-fixer.d.ts","sourceRoot":"","sources":["../../src/eslint/source-code-fixer.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAqCrC;;;GAGG;AACH,iBAAS,eAAe,SAGvB;kBAHQ,eAAe;;;AA0GxB,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,7 +1,6 @@
1
- import type { Linter, Rule } from 'eslint';
2
- import type { Node } from 'estree';
1
+ import type { AST, Linter, Rule } from 'eslint';
3
2
  import type { FixContext } from './index.js';
4
- export type FixableMaker = (message: Linter.LintMessage, node: Node | null, context: FixContext) => Rule.Fix | null | undefined;
3
+ export type FixableMaker = (message: Linter.LintMessage, range: AST.Range, context: FixContext) => Rule.Fix | null | undefined;
5
4
  export type FixToMakeFixableAndFixArgs = {
6
5
  fixableMaker: FixableMaker;
7
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"make-fixable-and-fix.d.ts","sourceRoot":"","sources":["../../src/fix/make-fixable-and-fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAc,MAAM,QAAQ,CAAC;AAEvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,CAAC,WAAW,EAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,UAAU,KAChB,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;AAEjC,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AA2DF;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAAC,GAAG,EAAE,CAE9G"}
1
+ {"version":3,"file":"make-fixable-and-fix.d.ts","sourceRoot":"","sources":["../../src/fix/make-fixable-and-fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAc,MAAM,QAAQ,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,CAAC,WAAW,EAC3B,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,OAAO,EAAE,UAAU,KAChB,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;AAEjC,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AA8BF;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAAC,GAAG,EAAE,CAE9G"}
@@ -1,53 +1,26 @@
1
- import { traverse } from 'estraverse';
2
- import { unreachable } from '../util/type-check.js';
3
- /**
4
- * Check the node is the source of the message.
5
- */
6
- function isMessageSourceNode(sourceCode, node, message) {
7
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Do not use `nodeType` in the future.
8
- if (message.nodeType === undefined)
9
- return false;
10
- // In some cases there may be no `endLine` or `endColumn`.
11
- if (message.endLine === undefined || message.endColumn === undefined)
12
- return false;
13
- // If `nodeType` is exists, `range` must be exists.
14
- if (node.range === undefined)
15
- return unreachable();
1
+ function getMessageRange(sourceCode, message) {
16
2
  const index = sourceCode.getIndexFromLoc({
17
3
  line: message.line,
18
4
  // NOTE: `column` of `ESLint.LintMessage` is 1-based, but `column` of `ESTree.Position` is 0-based.
19
5
  column: message.column - 1,
20
6
  });
21
- const endIndex = sourceCode.getIndexFromLoc({
22
- line: message.endLine,
23
- // NOTE: `column` of `ESLint.LintMessage` is 1-based, but `column` of `ESTree.Position` is 0-based.
24
- column: message.endColumn - 1,
25
- });
26
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Do not use `nodeType` in the future.
27
- const nodeType = message.nodeType;
28
- return node.range[0] === index && node.range[1] === endIndex && node.type === nodeType;
29
- }
30
- function getMessageToSourceNode(sourceCode, messages) {
31
- const result = new Map();
32
- traverse(sourceCode.ast, {
33
- // Required to traverse extension nodes such as `JSXElement`.
34
- fallback: 'iteration',
35
- enter(node) {
36
- for (const message of messages) {
37
- if (isMessageSourceNode(sourceCode, node, message)) {
38
- result.set(message, node);
39
- }
40
- }
41
- },
42
- });
43
- return result;
7
+ if (message.endLine && message.endColumn) {
8
+ const endIndex = sourceCode.getIndexFromLoc({
9
+ line: message.endLine,
10
+ // NOTE: `column` of `ESLint.LintMessage` is 1-based, but `column` of `ESTree.Position` is 0-based.
11
+ column: message.endColumn - 1,
12
+ });
13
+ return [index, endIndex];
14
+ }
15
+ else {
16
+ return [index, index];
17
+ }
44
18
  }
45
19
  function generateFixes(context, args) {
46
- const messageToNode = getMessageToSourceNode(context.sourceCode, context.messages);
47
20
  const fixes = [];
48
21
  for (const message of context.messages) {
49
- const node = messageToNode.get(message) ?? null;
50
- const fix = args.fixableMaker(message, node, context);
22
+ const range = getMessageRange(context.sourceCode, message);
23
+ const fix = args.fixableMaker(message, range, context);
51
24
  if (fix)
52
25
  fixes.push(fix);
53
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"make-fixable-and-fix.js","sourceRoot":"","sources":["../../src/fix/make-fixable-and-fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAapD;;GAEG;AACH,SAAS,mBAAmB,CAAC,UAAsB,EAAE,IAAU,EAAE,OAA2B;IAC1F,0GAA0G;IAC1G,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEjD,0DAA0D;IAC1D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACnF,mDAAmD;IACnD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,WAAW,EAAE,CAAC;IAEnD,MAAM,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC;QACvC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,mGAAmG;QACnG,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;QAC1C,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,mGAAmG;QACnG,MAAM,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC;KAC9B,CAAC,CAAC;IACH,0GAA0G;IAC1G,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AACzF,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAsB,EAAE,QAA8B;IACpF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEnD,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;QACvB,6DAA6D;QAC7D,QAAQ,EAAE,WAAW;QACrB,KAAK,CAAC,IAAU;YACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;oBACnD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB,EAAE,IAAgC;IAC1E,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnF,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAmB,EAAE,IAAgC;IAChG,OAAO,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"make-fixable-and-fix.js","sourceRoot":"","sources":["../../src/fix/make-fixable-and-fix.ts"],"names":[],"mappings":"AAaA,SAAS,eAAe,CAAC,UAAsB,EAAE,OAA2B;IAC1E,MAAM,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC;QACvC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,mGAAmG;QACnG,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;KAC3B,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;YAC1C,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,mGAAmG;YACnG,MAAM,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC;SAC9B,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB,EAAE,IAAgC;IAC1E,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAmB,EAAE,IAAgC;IAChG,OAAO,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"format-by-files.d.ts","sourceRoot":"","sources":["../../src/formatter/format-by-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOrC,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAuClE"}
1
+ {"version":3,"file":"format-by-files.d.ts","sourceRoot":"","sources":["../../src/formatter/format-by-files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOrC,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAuClE"}
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
1
2
  import { styleText } from 'node:util';
2
3
  import { ERROR_COLOR, FAILED_COLOR, WARNING_COLOR } from './colors.js';
3
4
  function pluralize(word, count) {
@@ -1 +1 @@
1
- {"version":3,"file":"format-by-files.js","sourceRoot":"","sources":["../../src/formatter/format-by-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa;IAC5C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA4B;IACxD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACN,YAAY,EAAE,CAAC;YACf,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;YACpC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IAC3C,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;IAE/C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IAC5D,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC;IACjE,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,SAAS,CAAC,YAAY,EAAE,GAAG,YAAY,IAAI,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAChG,OAAO,IAAI,cAAc,CAAC;IAE1B,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,KAAK,YAAY,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,IAAI,SAAS,CAAC,WAAW,EAAE,GAAG,UAAU,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,IAAI,SAAS,CAAC,aAAa,EAAE,GAAG,YAAY,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,IAAI,UAAU,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"format-by-files.js","sourceRoot":"","sources":["../../src/formatter/format-by-files.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa;IAC5C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA4B;IACxD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACN,YAAY,EAAE,CAAC;YACf,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;YACpC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IAC3C,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;IAE/C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IAC5D,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC;IACjE,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,SAAS,CAAC,YAAY,EAAE,GAAG,YAAY,IAAI,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAChG,OAAO,IAAI,cAAc,CAAC;IAE1B,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,KAAK,YAAY,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,IAAI,SAAS,CAAC,WAAW,EAAE,GAAG,UAAU,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,IAAI,SAAS,CAAC,aAAa,EAAE,GAAG,YAAY,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,IAAI,UAAU,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC"}
@@ -1,3 +1,8 @@
1
1
  import type { ESLint } from 'eslint';
2
- export declare function formatByRules(results: ESLint.LintResult[], data?: ESLint.LintResultData): string;
2
+ import type { SortField, SortOrder } from '../type.js';
3
+ export type FormatByRulesSortOptions = {
4
+ sort?: SortField | undefined;
5
+ sortOrder?: SortOrder | undefined;
6
+ };
7
+ export declare function formatByRules(results: ESLint.LintResult[], data?: ESLint.LintResultData, sortOptions?: FormatByRulesSortOptions): string;
3
8
  //# sourceMappingURL=format-by-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-by-rules.d.ts","sourceRoot":"","sources":["../../src/formatter/format-by-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAoBrC,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAgBhG"}
1
+ {"version":3,"file":"format-by-rules.d.ts","sourceRoot":"","sources":["../../src/formatter/format-by-rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgBvD,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACnC,CAAC;AAMF,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,cAAc,EAC5B,WAAW,CAAC,EAAE,wBAAwB,GACrC,MAAM,CAmBR"}
@@ -1,14 +1,19 @@
1
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
1
2
  import { styleText } from 'node:util';
2
3
  import terminalLink from 'terminal-link';
3
4
  import { ERROR_COLOR } from './colors.js';
4
5
  import { formatTable } from './format-table.js';
6
+ import { sortRuleStatistics } from './sort-rule-statistics.js';
5
7
  import { takeRuleStatistics } from './take-rule-statistics.js';
6
8
  const headerRow = ['Rule', 'Error', 'Warning', 'is fixable', 'has suggestions'];
7
9
  function numCell(num) {
8
10
  return num > 0 ? styleText([ERROR_COLOR, 'bold'], num.toString()) : num.toString();
9
11
  }
10
- export function formatByRules(results, data) {
11
- const ruleStatistics = takeRuleStatistics(results);
12
+ export function formatByRules(results, data, sortOptions) {
13
+ let ruleStatistics = takeRuleStatistics(results);
14
+ if (sortOptions?.sort) {
15
+ ruleStatistics = sortRuleStatistics(ruleStatistics, sortOptions.sort, sortOptions.sortOrder);
16
+ }
12
17
  const rows = [];
13
18
  ruleStatistics.forEach((ruleStatistic) => {
14
19
  const { ruleId, errorCount, warningCount, isFixableCount, hasSuggestionsCount } = ruleStatistic;
@@ -1 +1 @@
1
- {"version":3,"file":"format-by-rules.js","sourceRoot":"","sources":["../../src/formatter/format-by-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAUhF,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA4B,EAAE,IAA4B;IACtF,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAU,EAAE,CAAC;IAEvB,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACvC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,aAAa,CAAC;QAChG,MAAM,YAAY,GAAG,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC;YACR,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;YACpG,OAAO,CAAC,UAAU,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC;YACrB,OAAO,CAAC,cAAc,CAAC;YACvB,OAAO,CAAC,mBAAmB,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"format-by-rules.js","sourceRoot":"","sources":["../../src/formatter/format-by-rules.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAehF,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAA4B,EAC5B,IAA4B,EAC5B,WAAsC;IAEtC,IAAI,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,WAAW,EAAE,IAAI,EAAE,CAAC;QACtB,cAAc,GAAG,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACvC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,aAAa,CAAC;QAChG,MAAM,YAAY,GAAG,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC;YACR,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;YACpG,OAAO,CAAC,UAAU,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC;YACrB,OAAO,CAAC,cAAc,CAAC;YACvB,OAAO,CAAC,mBAAmB,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import type { ESLint } from 'eslint';
2
+ import { type FormatByRulesSortOptions } from './format-by-rules.js';
2
3
  export { takeRuleStatistics, type RuleStatistic } from './take-rule-statistics.js';
3
- export declare function format(results: ESLint.LintResult[], data?: ESLint.LintResultData): string;
4
+ export { sortRuleStatistics } from './sort-rule-statistics.js';
5
+ export declare function format(results: ESLint.LintResult[], data?: ESLint.LintResultData, sortOptions?: FormatByRulesSortOptions): string;
4
6
  //# sourceMappingURL=index.d.ts.map