Skip to content
This repository was archived by the owner on Jan 19, 2019. It is now read-only.

Commit 476e082

Browse files
author
Kai Cataldo
committed
Upgrade: typescript-estree v5
1 parent 5d49243 commit 476e082

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"dependencies": {
5252
"eslint": "4.19.1",
5353
"eslint-visitor-keys": "^1.0.0",
54-
"typescript-estree": "2.1.0"
54+
"typescript-estree": "5.0.0"
5555
},
5656
"peerDependencies": {
5757
"typescript": "*"

parser.js

+21-2
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,33 @@ const astNodeTypes = require("typescript-estree").AST_NODE_TYPES;
1313
const traverser = require("eslint/lib/util/traverser");
1414
const visitorKeys = require("./visitor-keys");
1515

16+
/**
17+
* Formats the parser options object for typescript-estree
18+
* @param {Object} options - ESLint parser options object
19+
* @returns {Object} formatted typescript-estree options object
20+
*/
21+
function formatOptions(options) {
22+
const formattedOptions = Object.assign({}, options);
23+
24+
if (options.ecmaFeatures) {
25+
delete formattedOptions.ecmaFeatures;
26+
27+
if (options.ecmaFeatures.jsx) {
28+
formattedOptions.jsx = options.ecmaFeatures.jsx;
29+
}
30+
}
31+
32+
return formattedOptions;
33+
}
34+
1635
//------------------------------------------------------------------------------
1736
// Public
1837
//------------------------------------------------------------------------------
1938

2039
exports.version = require("./package.json").version;
2140

2241
exports.parseForESLint = function parseForESLint(code, options) {
23-
const ast = parse(code, options);
42+
const ast = parse(code, formatOptions(options));
2443
traverser.traverse(ast, {
2544
enter: node => {
2645
if (node.type === "DeclareFunction" || node.type === "FunctionExpression" || node.type === "FunctionDeclaration") {
@@ -34,7 +53,7 @@ exports.parseForESLint = function parseForESLint(code, options) {
3453
};
3554

3655
exports.parse = function(code, options) {
37-
return this.parseForESLint(code, options).ast;
56+
return this.parseForESLint(code, formatOptions(options)).ast;
3857
};
3958

4059
// Deep copy.

0 commit comments

Comments
 (0)