@babel/eslint-parser: Refactor (#10916)
This commit is contained in:
parent
83993b08d5
commit
c09664f35d
@ -1,27 +1,6 @@
|
||||
import { types as t } from "@babel/core";
|
||||
import { types as t, traverse } from "@babel/core";
|
||||
import convertProgramNode from "./convertProgramNode";
|
||||
|
||||
module.exports = function(ast, traverse, code) {
|
||||
const state = { source: code };
|
||||
|
||||
// Monkey patch visitor keys in order to be able to traverse the estree nodes
|
||||
t.VISITOR_KEYS.Property = t.VISITOR_KEYS.ObjectProperty;
|
||||
t.VISITOR_KEYS.MethodDefinition = [
|
||||
"key",
|
||||
"value",
|
||||
"decorators",
|
||||
"returnType",
|
||||
"typeParameters",
|
||||
];
|
||||
|
||||
traverse(ast, astTransformVisitor, null, state);
|
||||
|
||||
delete t.VISITOR_KEYS.Property;
|
||||
delete t.VISITOR_KEYS.MethodDefinition;
|
||||
|
||||
convertProgramNode(ast);
|
||||
};
|
||||
|
||||
const astTransformVisitor = {
|
||||
noScope: true,
|
||||
enter(path) {
|
||||
@ -94,3 +73,24 @@ const astTransformVisitor = {
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
export default function(ast, code) {
|
||||
const state = { source: code };
|
||||
|
||||
// Monkey patch visitor keys in order to be able to traverse the estree nodes
|
||||
t.VISITOR_KEYS.Property = t.VISITOR_KEYS.ObjectProperty;
|
||||
t.VISITOR_KEYS.MethodDefinition = [
|
||||
"key",
|
||||
"value",
|
||||
"decorators",
|
||||
"returnType",
|
||||
"typeParameters",
|
||||
];
|
||||
|
||||
traverse(ast, astTransformVisitor, null, state);
|
||||
|
||||
delete t.VISITOR_KEYS.Property;
|
||||
delete t.VISITOR_KEYS.MethodDefinition;
|
||||
|
||||
convertProgramNode(ast);
|
||||
}
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
export default function(tokens, tt) {
|
||||
import { tokTypes as tt } from "@babel/core";
|
||||
|
||||
export default function(tokens) {
|
||||
let curlyBrace = null;
|
||||
let templateTokens = [];
|
||||
const result = [];
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
export default function(token, tt, source) {
|
||||
import { tokTypes as tt } from "@babel/core";
|
||||
|
||||
export default function(token, source) {
|
||||
const type = token.type;
|
||||
token.range = [token.start, token.end];
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import convertTemplateType from "./convertTemplateType";
|
||||
import convertToken from "./convertToken";
|
||||
|
||||
export default function(tokens, tt, code) {
|
||||
return convertTemplateType(tokens, tt)
|
||||
export default function(tokens, code) {
|
||||
return convertTemplateType(tokens)
|
||||
.filter(t => t.type !== "CommentLine" && t.type !== "CommentBlock")
|
||||
.map(t => convertToken(t, tt, code));
|
||||
.map(t => convertToken(t, code));
|
||||
}
|
||||
|
||||
@ -2,8 +2,8 @@ import convertTokens from "./convertTokens";
|
||||
import convertComments from "./convertComments";
|
||||
import convertAST from "./convertAST";
|
||||
|
||||
export default function(ast, traverse, tt, code) {
|
||||
ast.tokens = convertTokens(ast.tokens, tt, code);
|
||||
export default function(ast, code) {
|
||||
ast.tokens = convertTokens(ast.tokens, code);
|
||||
convertComments(ast.comments);
|
||||
convertAST(ast, traverse, code);
|
||||
convertAST(ast, code);
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ const IS_RUNNING_SUPPORTED_VERSION = semver.satisfies(
|
||||
);
|
||||
|
||||
export function parse(code, options) {
|
||||
return exports.parseForESLint(code, options).ast;
|
||||
return parseForESLint(code, options).ast;
|
||||
}
|
||||
|
||||
export function parseForESLint(code, options = {}) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { parseSync as babelParse, tokTypes as tt, traverse } from "@babel/core";
|
||||
import { parseSync as babelParse } from "@babel/core";
|
||||
import babylonToEspree from "./babylon-to-espree";
|
||||
import { normalizeBabelParseConfig } from "./configuration";
|
||||
|
||||
@ -17,7 +17,7 @@ export default function parse(code, options) {
|
||||
throw err;
|
||||
}
|
||||
|
||||
babylonToEspree(ast, traverse, tt, code);
|
||||
babylonToEspree(ast, code);
|
||||
|
||||
return ast;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user