PR-URL: https://github.com/nodejs/node/pull/36321 Fixes: https://github.com/ensure Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
68 lines
No EOL
1.9 KiB
JavaScript
68 lines
No EOL
1.9 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.parse = parse;
|
|
exports.parseForESLint = parseForESLint;
|
|
|
|
var _semver = _interopRequireDefault(require("semver"));
|
|
|
|
var _core = require("@babel/core");
|
|
|
|
var _package = _interopRequireDefault(require("../package.json"));
|
|
|
|
var _configuration = require("./configuration");
|
|
|
|
var _convert = _interopRequireDefault(require("./convert"));
|
|
|
|
var _analyzeScope = _interopRequireDefault(require("./analyze-scope"));
|
|
|
|
var _visitorKeys = _interopRequireDefault(require("./visitor-keys"));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
let isRunningMinSupportedCoreVersion = null;
|
|
|
|
function baseParse(code, options) {
|
|
const minSupportedCoreVersion = ">=7.2.0";
|
|
|
|
if (typeof isRunningMinSupportedCoreVersion !== "boolean") {
|
|
isRunningMinSupportedCoreVersion = _semver.default.satisfies(_core.version, minSupportedCoreVersion);
|
|
}
|
|
|
|
if (!isRunningMinSupportedCoreVersion) {
|
|
throw new Error(`@babel/eslint-parser@${_package.default.version} does not support @babel/core@${_core.version}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`);
|
|
}
|
|
|
|
let ast;
|
|
|
|
try {
|
|
ast = (0, _core.parseSync)(code, (0, _configuration.normalizeBabelParseConfig)(options));
|
|
} catch (err) {
|
|
if (err instanceof SyntaxError) {
|
|
err.lineNumber = err.loc.line;
|
|
err.column = err.loc.column;
|
|
}
|
|
|
|
throw err;
|
|
}
|
|
|
|
(0, _convert.default)(ast, code);
|
|
return ast;
|
|
}
|
|
|
|
function parse(code, options = {}) {
|
|
return baseParse(code, (0, _configuration.normalizeESLintConfig)(options));
|
|
}
|
|
|
|
function parseForESLint(code, options = {}) {
|
|
const normalizedOptions = (0, _configuration.normalizeESLintConfig)(options);
|
|
const ast = baseParse(code, normalizedOptions);
|
|
const scopeManager = (0, _analyzeScope.default)(ast, normalizedOptions);
|
|
return {
|
|
ast,
|
|
scopeManager,
|
|
visitorKeys: _visitorKeys.default
|
|
};
|
|
} |