WIP - add extractor, generate snippet_data
This commit is contained in:
93
node_modules/babel-eslint/lib/parse.js
generated
vendored
Normal file
93
node_modules/babel-eslint/lib/parse.js
generated
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
"use strict";
|
||||
|
||||
var babylonToEspree = require("./babylon-to-espree");
|
||||
var parse = require("@babel/parser").parse;
|
||||
var tt = require("@babel/parser").tokTypes;
|
||||
var traverse = require("@babel/traverse").default;
|
||||
var codeFrameColumns = require("@babel/code-frame").codeFrameColumns;
|
||||
|
||||
module.exports = function(code, options) {
|
||||
const legacyDecorators =
|
||||
options.ecmaFeatures && options.ecmaFeatures.legacyDecorators;
|
||||
|
||||
var opts = {
|
||||
codeFrame: options.hasOwnProperty("codeFrame") ? options.codeFrame : true,
|
||||
sourceType: options.sourceType,
|
||||
allowImportExportEverywhere: options.allowImportExportEverywhere, // consistent with espree
|
||||
allowReturnOutsideFunction: true,
|
||||
allowSuperOutsideMethod: true,
|
||||
ranges: true,
|
||||
tokens: true,
|
||||
plugins: [
|
||||
["flow", { all: true }],
|
||||
"jsx",
|
||||
"estree",
|
||||
"asyncFunctions",
|
||||
"asyncGenerators",
|
||||
"classConstructorCall",
|
||||
"classProperties",
|
||||
legacyDecorators
|
||||
? "decorators-legacy"
|
||||
: ["decorators", { decoratorsBeforeExport: false }],
|
||||
"doExpressions",
|
||||
"exponentiationOperator",
|
||||
"exportDefaultFrom",
|
||||
"exportNamespaceFrom",
|
||||
"functionBind",
|
||||
"functionSent",
|
||||
"objectRestSpread",
|
||||
"trailingFunctionCommas",
|
||||
"dynamicImport",
|
||||
"numericSeparator",
|
||||
"optionalChaining",
|
||||
"importMeta",
|
||||
"classPrivateProperties",
|
||||
"bigInt",
|
||||
"optionalCatchBinding",
|
||||
"throwExpressions",
|
||||
["pipelineOperator", { proposal: "minimal" }],
|
||||
"nullishCoalescingOperator",
|
||||
"logicalAssignment",
|
||||
],
|
||||
};
|
||||
|
||||
var ast;
|
||||
try {
|
||||
ast = parse(code, opts);
|
||||
} catch (err) {
|
||||
if (err instanceof SyntaxError) {
|
||||
err.lineNumber = err.loc.line;
|
||||
err.column = err.loc.column;
|
||||
|
||||
if (opts.codeFrame) {
|
||||
err.lineNumber = err.loc.line;
|
||||
err.column = err.loc.column + 1;
|
||||
|
||||
// remove trailing "(LINE:COLUMN)" acorn message and add in esprima syntax error message start
|
||||
err.message =
|
||||
"Line " +
|
||||
err.lineNumber +
|
||||
": " +
|
||||
err.message.replace(/ \((\d+):(\d+)\)$/, "") +
|
||||
// add codeframe
|
||||
"\n\n" +
|
||||
codeFrameColumns(
|
||||
code,
|
||||
{
|
||||
start: {
|
||||
line: err.lineNumber,
|
||||
column: err.column,
|
||||
},
|
||||
},
|
||||
{ highlightCode: true }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
throw err;
|
||||
}
|
||||
|
||||
babylonToEspree(ast, traverse, tt, code);
|
||||
|
||||
return ast;
|
||||
};
|
||||
Reference in New Issue
Block a user