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";
|
||||
|
||||
export function normalizeESLintConfig(options) {
|
||||
const defaultOptions = {
|
||||
babelOptions: {},
|
||||
ecmaVersion: 2020,
|
||||
sourceType: "module",
|
||||
allowImportExportEverywhere: false,
|
||||
requireConfigFile: true,
|
||||
};
|
||||
const {
|
||||
babelOptions = {},
|
||||
// ESLint sets ecmaVersion: undefined when ecmaVersion is not set in the config.
|
||||
ecmaVersion = 2020,
|
||||
sourceType = "module",
|
||||
allowImportExportEverywhere = false,
|
||||
requireConfigFile = true,
|
||||
...otherOptions
|
||||
} = options;
|
||||
|
||||
return Object.assign(defaultOptions, options);
|
||||
return {
|
||||
babelOptions,
|
||||
ecmaVersion,
|
||||
sourceType,
|
||||
allowImportExportEverywhere,
|
||||
requireConfigFile,
|
||||
...otherOptions,
|
||||
};
|
||||
}
|
||||
|
||||
export function normalizeBabelParseConfig(options) {
|
||||
|
||||
@ -4,7 +4,8 @@
|
||||
"description": "Tests for babel/eslint-* packages",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"dependencies": {
|
||||
"@babel/eslint-parser": "^7.11.0",
|
||||
"dedent": "^0.7.0",
|
||||
"eslint": "^7.5.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