Skip to content

Commit

Permalink
[Refactor] improve performance of component detection
Browse files Browse the repository at this point in the history
  • Loading branch information
golopot authored and ljharb committed Apr 23, 2022
1 parent ea3b2a3 commit 46ce117
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 29 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Expand Up @@ -32,10 +32,12 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange
* [Refactor] add `isParenthesized` AST util ([#3203][] @Belco90)
* [Docs] `default-props-match-prop-types`, `require-default-props`, `sort-prop-types`: fix typos ([#3279][] @nix6839)
* [Refactor] improve performance of rule merging ([#3281][] @golopot)
* [Refactor] improve performance of component detection ([#3276][] @golopot)

[#3281]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3281
[#3280]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3280
[#3279]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3279
[#3276]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3276
[#3273]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3273
[#3272]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3272
[#3271]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3271
Expand Down
33 changes: 4 additions & 29 deletions lib/util/Components.js
Expand Up @@ -782,14 +782,6 @@ function componentRule(rule, context) {
components.add(node, 2);
},

'ClassProperty, PropertyDefinition'(node) {
node = utils.getParentComponent();
if (!node) {
return;
}
components.add(node, 2);
},

ObjectExpression(node) {
if (!componentUtil.isES5Component(node, context)) {
return;
Expand All @@ -812,7 +804,7 @@ function componentRule(rule, context) {
components.add(node, 0);
return;
}
components.add(component, 1);
components.add(component, 2);
},

FunctionDeclaration(node) {
Expand All @@ -825,7 +817,7 @@ function componentRule(rule, context) {
if (!node) {
return;
}
components.add(node, 1);
components.add(node, 2);
},

ArrowFunctionExpression(node) {
Expand All @@ -843,34 +835,17 @@ function componentRule(rule, context) {
components.add(node, 0);
return;
}
if (component.expression && utils.isReturningJSX(component)) {
components.add(component, 2);
} else {
components.add(component, 1);
}
components.add(component, 2);
},

ThisExpression(node) {
const component = utils.getParentComponent();
const component = utils.getParentStatelessComponent();
if (!component || !/Function/.test(component.type) || !node.parent.property) {
return;
}
// Ban functions accessing a property on a ThisExpression
components.add(node, 0);
},

ReturnStatement(node) {
if (!utils.isReturningJSX(node)) {
return;
}
node = utils.getParentComponent();
if (!node) {
const scope = context.getScope();
components.add(scope.block, 1);
return;
}
components.add(node, 2);
},
};

// Detect React import specifiers
Expand Down

0 comments on commit 46ce117

Please sign in to comment.