fix: ensure defaults are set in @babel/eslint-parser (#11970)
* fix: ensure defaults are set in @babel/eslint-parser * Address feedback * Update eslint config normalization
This commit is contained in:
parent
cdada5800d
commit
180e9c00e3
@ -1,15 +1,24 @@
|
|||||||
import { loadPartialConfig } from "@babel/core";
|
import { loadPartialConfig } from "@babel/core";
|
||||||
|
|
||||||
export function normalizeESLintConfig(options) {
|
export function normalizeESLintConfig(options) {
|
||||||
const defaultOptions = {
|
const {
|
||||||
babelOptions: {},
|
babelOptions = {},
|
||||||
ecmaVersion: 2020,
|
// ESLint sets ecmaVersion: undefined when ecmaVersion is not set in the config.
|
||||||
sourceType: "module",
|
ecmaVersion = 2020,
|
||||||
allowImportExportEverywhere: false,
|
sourceType = "module",
|
||||||
requireConfigFile: true,
|
allowImportExportEverywhere = false,
|
||||||
};
|
requireConfigFile = true,
|
||||||
|
...otherOptions
|
||||||
|
} = options;
|
||||||
|
|
||||||
return Object.assign(defaultOptions, options);
|
return {
|
||||||
|
babelOptions,
|
||||||
|
ecmaVersion,
|
||||||
|
sourceType,
|
||||||
|
allowImportExportEverywhere,
|
||||||
|
requireConfigFile,
|
||||||
|
...otherOptions,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function normalizeBabelParseConfig(options) {
|
export function normalizeBabelParseConfig(options) {
|
||||||
|
|||||||
@ -4,7 +4,8 @@
|
|||||||
"description": "Tests for babel/eslint-* packages",
|
"description": "Tests for babel/eslint-* packages",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"private": true,
|
"private": true,
|
||||||
"devDependencies": {
|
"dependencies": {
|
||||||
|
"@babel/eslint-parser": "^7.11.0",
|
||||||
"dedent": "^0.7.0",
|
"dedent": "^0.7.0",
|
||||||
"eslint": "^7.5.0",
|
"eslint": "^7.5.0",
|
||||||
"eslint-plugin-import": "^2.22.0"
|
"eslint-plugin-import": "^2.22.0"
|
||||||
|
|||||||
21
eslint/babel-eslint-tests/test/integration/eslint/config.js
Normal file
21
eslint/babel-eslint-tests/test/integration/eslint/config.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import eslint from "eslint";
|
||||||
|
import * as parser from "@babel/eslint-parser";
|
||||||
|
|
||||||
|
describe("ESLint config", () => {
|
||||||
|
it('should set ecmaVersion to latest and sourceType to "module" by default', () => {
|
||||||
|
const linter = new eslint.Linter();
|
||||||
|
linter.defineParser("@babel/eslint-parser", parser);
|
||||||
|
// ImportDeclarations result in a parser error if ecmaVersion < 2015 and sourceType != "module".
|
||||||
|
const messages = linter.verify('import { hello } from "greetings"', {
|
||||||
|
parser: "@babel/eslint-parser",
|
||||||
|
parserOptions: {
|
||||||
|
babelOptions: {
|
||||||
|
configFile: require.resolve(
|
||||||
|
"../../../../babel-eslint-shared-fixtures/config/babel.config.js",
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
expect(messages.length).toEqual(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
x
Reference in New Issue
Block a user