Skip to content

Commit e3c0258

Browse files
committed
fix: support ESLint 9+ by using legacy config for async path
1 parent 22cf1cf commit e3c0258

4 files changed

Lines changed: 22 additions & 6 deletions

File tree

packages/eslint-config-airbnb-base/whitespace-async.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const { isArray } = Array;
44
const { entries } = Object;
5-
const { ESLint } = require('eslint');
5+
const eslint = require('eslint');
66

77
const baseConfig = require('.');
88
const whitespaceRules = require('./whitespaceRules');
@@ -21,11 +21,18 @@ function getSeverity(ruleConfig) {
2121

2222
async function onlyErrorOnRules(rulesToError, config) {
2323
const errorsOnly = { ...config };
24-
const cli = new ESLint({
24+
const ESLintClass = typeof eslint.loadESLint === 'function'
25+
? await eslint.loadESLint({ useFlatConfig: false })
26+
: eslint.ESLint;
27+
const cli = new ESLintClass({
2528
useEslintrc: false,
2629
baseConfig: config
2730
});
28-
const baseRules = (await cli.calculateConfigForFile(require.resolve('./'))).rules;
31+
const resolvedPath = require.resolve('./');
32+
const configForFile = typeof cli.getConfigForFile === 'function'
33+
? cli.getConfigForFile(resolvedPath)
34+
: await cli.calculateConfigForFile(resolvedPath);
35+
const baseRules = configForFile.rules;
2936

3037
entries(baseRules).forEach((rule) => {
3138
const ruleName = rule[0];

packages/eslint-config-airbnb-base/whitespace.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ if (CLIEngine) {
5656
env: {
5757
...process.env,
5858
TIMING: undefined,
59+
ESLINT_USE_FLAT_CONFIG: 'false',
5960
}
6061
})));
6162
}

packages/eslint-config-airbnb/whitespace-async.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const { isArray } = Array;
44
const { entries } = Object;
5-
const { ESLint } = require('eslint');
5+
const eslint = require('eslint');
66

77
const baseConfig = require('.');
88
const whitespaceRules = require('./whitespaceRules');
@@ -21,11 +21,18 @@ function getSeverity(ruleConfig) {
2121

2222
async function onlyErrorOnRules(rulesToError, config) {
2323
const errorsOnly = { ...config };
24-
const cli = new ESLint({
24+
const ESLintClass = typeof eslint.loadESLint === 'function'
25+
? await eslint.loadESLint({ useFlatConfig: false })
26+
: eslint.ESLint;
27+
const cli = new ESLintClass({
2528
useEslintrc: false,
2629
baseConfig: config
2730
});
28-
const baseRules = (await cli.calculateConfigForFile(require.resolve('./'))).rules;
31+
const resolvedPath = require.resolve('./');
32+
const configForFile = typeof cli.getConfigForFile === 'function'
33+
? cli.getConfigForFile(resolvedPath)
34+
: await cli.calculateConfigForFile(resolvedPath);
35+
const baseRules = configForFile.rules;
2936

3037
entries(baseRules).forEach((rule) => {
3138
const ruleName = rule[0];

packages/eslint-config-airbnb/whitespace.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ if (CLIEngine) {
5656
env: {
5757
...process.env,
5858
TIMING: undefined,
59+
ESLINT_USE_FLAT_CONFIG: 'false',
5960
}
6061
})));
6162
}

0 commit comments

Comments
 (0)