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.
- package/README.md +34 -58
- package/bin/eslint-interactive.js +8 -11
- package/dist/action/index.d.ts +0 -2
- package/dist/action/index.d.ts.map +1 -1
- package/dist/action/index.js +0 -2
- package/dist/action/index.js.map +1 -1
- package/dist/action/print-result-details.d.ts.map +1 -1
- package/dist/action/print-result-details.js +6 -1
- package/dist/action/print-result-details.js.map +1 -1
- package/dist/cli/log.d.ts +3 -3
- package/dist/cli/log.d.ts.map +1 -1
- package/dist/cli/log.js +5 -4
- package/dist/cli/log.js.map +1 -1
- package/dist/cli/parse-argv.d.ts +2 -22
- package/dist/cli/parse-argv.d.ts.map +1 -1
- package/dist/cli/parse-argv.js +37 -43
- package/dist/cli/parse-argv.js.map +1 -1
- package/dist/cli/prompt.d.ts +1 -11
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +3 -44
- package/dist/cli/prompt.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +6 -20
- package/dist/cli/run.js.map +1 -1
- package/dist/core-worker.d.ts +2 -4
- package/dist/core-worker.d.ts.map +1 -1
- package/dist/core-worker.js +3 -10
- package/dist/core-worker.js.map +1 -1
- package/dist/core.d.ts +8 -5
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +61 -47
- package/dist/core.js.map +1 -1
- package/dist/eslint/linter.d.ts +2 -3
- package/dist/eslint/linter.d.ts.map +1 -1
- package/dist/eslint/linter.js.map +1 -1
- package/dist/eslint/source-code-fixer.d.ts +1 -5
- package/dist/eslint/source-code-fixer.d.ts.map +1 -1
- package/dist/fix/make-fixable-and-fix.d.ts +2 -3
- package/dist/fix/make-fixable-and-fix.d.ts.map +1 -1
- package/dist/fix/make-fixable-and-fix.js +14 -41
- package/dist/fix/make-fixable-and-fix.js.map +1 -1
- package/dist/formatter/format-by-files.d.ts.map +1 -1
- package/dist/formatter/format-by-files.js +1 -0
- package/dist/formatter/format-by-files.js.map +1 -1
- package/dist/formatter/format-by-rules.d.ts +6 -1
- package/dist/formatter/format-by-rules.d.ts.map +1 -1
- package/dist/formatter/format-by-rules.js +7 -2
- package/dist/formatter/format-by-rules.js.map +1 -1
- package/dist/formatter/index.d.ts +3 -1
- package/dist/formatter/index.d.ts.map +1 -1
- package/dist/formatter/index.js +3 -2
- package/dist/formatter/index.js.map +1 -1
- package/dist/formatter/sort-rule-statistics.d.ts +5 -0
- package/dist/formatter/sort-rule-statistics.d.ts.map +1 -0
- package/dist/formatter/sort-rule-statistics.js +34 -0
- package/dist/formatter/sort-rule-statistics.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +14 -0
- package/dist/plugin.js.map +1 -1
- package/dist/scene/lint.d.ts.map +1 -1
- package/dist/scene/lint.js +13 -14
- package/dist/scene/lint.js.map +1 -1
- package/dist/scene/select-action.d.ts.map +1 -1
- package/dist/scene/select-action.js +3 -9
- package/dist/scene/select-action.js.map +1 -1
- package/dist/type.d.ts +12 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/type.js +2 -0
- package/dist/type.js.map +1 -0
- package/dist/util/eslint.d.ts.map +1 -1
- package/dist/util/eslint.js +1 -1
- package/dist/util/eslint.js.map +1 -1
- package/dist/util/type-check.d.ts +0 -3
- package/dist/util/type-check.d.ts.map +1 -1
- package/package.json +20 -20
- package/src/action/index.ts +0 -2
- package/src/action/print-result-details.ts +7 -1
- package/src/cli/log.ts +5 -4
- package/src/cli/parse-argv.ts +45 -61
- package/src/cli/prompt.ts +4 -48
- package/src/cli/run.ts +6 -22
- package/src/core-worker.ts +6 -21
- package/src/core.ts +52 -50
- package/src/eslint/linter.ts +2 -3
- package/src/fix/make-fixable-and-fix.ts +15 -47
- package/src/formatter/format-by-files.ts +1 -0
- package/src/formatter/format-by-rules.ts +18 -3
- package/src/formatter/index.ts +8 -3
- package/src/formatter/sort-rule-statistics.ts +35 -0
- package/src/index.ts +2 -2
- package/src/plugin.ts +14 -0
- package/src/scene/lint.ts +16 -18
- package/src/scene/select-action.ts +1 -8
- package/src/type.ts +13 -0
- package/src/util/eslint.ts +2 -2
- package/src/util/type-check.ts +0 -4
- package/bin/_eslint-interactive.js +0 -9
- package/dist/action/apply-suggestions.d.ts +0 -6
- package/dist/action/apply-suggestions.d.ts.map +0 -1
- package/dist/action/apply-suggestions.js +0 -27
- package/dist/action/apply-suggestions.js.map +0 -1
- package/dist/action/make-fixable-and-fix.d.ts +0 -6
- package/dist/action/make-fixable-and-fix.d.ts.map +0 -1
- package/dist/action/make-fixable-and-fix.js +0 -27
- package/dist/action/make-fixable-and-fix.js.map +0 -1
- package/dist/config.d.ts +0 -47
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -98
- package/dist/config.js.map +0 -1
- package/dist/eslint/use-at-your-own-risk.d.ts +0 -5
- package/dist/eslint/use-at-your-own-risk.d.ts.map +0 -1
- package/dist/eslint/use-at-your-own-risk.js +0 -6
- package/dist/eslint/use-at-your-own-risk.js.map +0 -1
- package/dist/util/file-system.d.ts +0 -5
- package/dist/util/file-system.d.ts.map +0 -1
- package/dist/util/file-system.js +0 -10
- package/dist/util/file-system.js.map +0 -1
- package/dist/util/filter-script.d.ts +0 -6
- package/dist/util/filter-script.d.ts.map +0 -1
- package/dist/util/filter-script.js +0 -38
- package/dist/util/filter-script.js.map +0 -1
- package/src/action/apply-suggestions.ts +0 -39
- package/src/action/make-fixable-and-fix.ts +0 -39
- package/src/config.ts +0 -142
- package/src/eslint/use-at-your-own-risk.js +0 -6
- package/src/util/file-system.ts +0 -10
- package/src/util/filter-script.ts +0 -45
- package/static/example-filter-script.js +0 -40
- 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
|
-
|
|
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
|
-
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
|
|
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,
|
package/dist/cli/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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"}
|
package/dist/core-worker.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/core-worker.js
CHANGED
|
@@ -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));
|
package/dist/core-worker.js.map
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
-
|
|
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
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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.
|
|
71
|
-
if (this
|
|
72
|
-
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.
|
|
81
|
-
return format(results, { rulesMeta, cwd: this
|
|
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
|
|
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
|
|
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
|
|
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;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/eslint/linter.d.ts
CHANGED
|
@@ -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:
|
|
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,
|
|
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;
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
|
50
|
-
const fix = args.fixableMaker(message,
|
|
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":"
|
|
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":"
|
|
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 +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
|
-
|
|
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":"
|
|
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
|
-
|
|
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;
|
|
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
|
|
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
|