diff --git a/eslint/babel-eslint-parser/package.json b/eslint/babel-eslint-parser/package.json index 2cd150eab58e..a4f1ed1a0c96 100644 --- a/eslint/babel-eslint-parser/package.json +++ b/eslint/babel-eslint-parser/package.json @@ -23,7 +23,7 @@ "./package.json": "./package.json" }, "peerDependencies": { - "@babel/core": ">=7.10.0", + "@babel/core": ">=7.11.0", "eslint": ">=7.5.0" }, "dependencies": { diff --git a/eslint/babel-eslint-parser/src/index.js b/eslint/babel-eslint-parser/src/index.js index 2da046b0f05f..e4be37d822ff 100644 --- a/eslint/babel-eslint-parser/src/index.js +++ b/eslint/babel-eslint-parser/src/index.js @@ -12,19 +12,22 @@ import convert from "./convert"; import analyzeScope from "./analyze-scope"; import visitorKeys from "./visitor-keys"; -let isRunningSupportedVersion; +let isRunningMinSupportedCoreVersion = null; function baseParse(code, options) { - if (typeof isRunningSupportedVersion !== "boolean") { - isRunningSupportedVersion = semver.satisfies( + // Ensure we're using a version of `@babel/core` that includes `parse()` and `tokTypes`. + const minSupportedCoreVersion = ">=7.2.0"; + + if (typeof isRunningMinSupportedCoreVersion !== "boolean") { + isRunningMinSupportedCoreVersion = semver.satisfies( babelCoreVersion, - packageJson.peerDependencies["@babel/core"], + minSupportedCoreVersion, ); } - if (!isRunningSupportedVersion) { + if (!isRunningMinSupportedCoreVersion) { throw new Error( - `@babel/eslint-parser@${packageJson.version} does not support @babel/core@${babelCoreVersion}. Please upgrade to @babel/core@${packageJson.peerDependencies["@babel/core"]}`, + `@babel/eslint-parser@${packageJson.version} does not support @babel/core@${babelCoreVersion}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`, ); }