Skip to content

Commit 0170dbe

Browse files
committed
[Refactor] add astUtil.isCallExpression predicate
1 parent 3b6bacc commit 0170dbe

22 files changed

+57
-50
lines changed

lib/rules/boolean-prop-naming.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const values = require('object.values');
1010

1111
const Components = require('../util/Components');
1212
const propsUtil = require('../util/props');
13+
const astUtil = require('../util/ast');
1314
const docsUrl = require('../util/docsUrl');
1415
const propWrapperUtil = require('../util/propWrapper');
1516
const report = require('../util/report');
@@ -26,7 +27,7 @@ const getText = eslintUtil.getText;
2627
function nestedPropTypes(prop) {
2728
return (
2829
prop.type === 'Property'
29-
&& prop.value.type === 'CallExpression'
30+
&& astUtil.isCallExpression(prop.value)
3031
);
3132
}
3233

@@ -311,7 +312,7 @@ module.exports = {
311312
}
312313
if (
313314
node.value
314-
&& node.value.type === 'CallExpression'
315+
&& astUtil.isCallExpression(node.value)
315316
&& propWrapperUtil.isPropWrapperFunction(
316317
context,
317318
getText(context, node.value.callee)
@@ -337,7 +338,7 @@ module.exports = {
337338
}
338339
const right = node.parent.right;
339340
if (
340-
right.type === 'CallExpression'
341+
astUtil.isCallExpression(right)
341342
&& propWrapperUtil.isPropWrapperFunction(
342343
context,
343344
getText(context, right.callee)

lib/rules/display-name.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,9 @@ module.exports = {
7676
* @returns {boolean} True if React.forwardRef is nested inside React.memo, false if not.
7777
*/
7878
function isNestedMemo(node) {
79-
return node.type === 'CallExpression'
79+
return astUtil.isCallExpression(node)
8080
&& node.arguments
81-
&& node.arguments[0]
82-
&& node.arguments[0].type === 'CallExpression'
81+
&& astUtil.isCallExpression(node.arguments[0])
8382
&& utils.isPragmaComponentWrapper(node);
8483
}
8584

lib/rules/forbid-prop-types.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ module.exports = {
134134
) {
135135
value = value.object;
136136
}
137-
if (value.type === 'CallExpression') {
137+
if (astUtil.isCallExpression(value)) {
138138
if (!isPropTypesPackage(value.callee)) {
139139
return;
140140
}
@@ -169,7 +169,7 @@ module.exports = {
169169
if (propTypesObject && propTypesObject.properties) {
170170
checkProperties(propTypesObject.properties);
171171
}
172-
} else if (node.type === 'CallExpression') {
172+
} else if (astUtil.isCallExpression(node)) {
173173
const innerNode = node.arguments && node.arguments[0];
174174
if (
175175
propWrapperUtil.isPropWrapperFunction(context, getText(context, node.callee))

lib/rules/jsx-no-bind.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
const propName = require('jsx-ast-utils/propName');
1111
const docsUrl = require('../util/docsUrl');
12+
const astUtil = require('../util/ast');
1213
const jsxUtil = require('../util/jsx');
1314
const report = require('../util/report');
1415
const getAncestors = require('../util/eslint').getAncestors;
@@ -83,10 +84,9 @@ module.exports = {
8384
}
8485

8586
function getNodeViolationType(node) {
86-
const nodeType = node.type;
8787
if (
8888
!configuration.allowBind
89-
&& nodeType === 'CallExpression'
89+
&& astUtil.isCallExpression(node)
9090
&& node.callee.type === 'MemberExpression'
9191
&& node.callee.property.type === 'Identifier'
9292
&& node.callee.property.name === 'bind'

lib/rules/jsx-no-useless-fragment.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
const arrayIncludes = require('array-includes');
88

99
const pragmaUtil = require('../util/pragma');
10+
const astUtil = require('../util/ast');
1011
const jsxUtil = require('../util/jsx');
1112
const docsUrl = require('../util/docsUrl');
1213
const report = require('../util/report');
@@ -75,8 +76,7 @@ function isKeyedElement(node) {
7576
function containsCallExpression(node) {
7677
return node
7778
&& node.type === 'JSXExpressionContainer'
78-
&& node.expression
79-
&& node.expression.type === 'CallExpression';
79+
&& astUtil.isCallExpression(node.expression);
8080
}
8181

8282
const messages = {

lib/rules/no-access-state-in-setstate.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
'use strict';
77

88
const docsUrl = require('../util/docsUrl');
9+
const astUtil = require('../util/ast');
910
const componentUtil = require('../util/componentUtil');
1011
const report = require('../util/report');
1112
const getScope = require('../util/eslint').getScope;
@@ -32,7 +33,7 @@ module.exports = {
3233

3334
create(context) {
3435
function isSetStateCall(node) {
35-
return node.type === 'CallExpression'
36+
return astUtil.isCallExpression(node)
3637
&& node.callee.property
3738
&& node.callee.property.name === 'setState'
3839
&& node.callee.object.type === 'ThisExpression';

lib/rules/no-adjacent-inline-elements.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
const docsUrl = require('../util/docsUrl');
99
const isCreateElement = require('../util/isCreateElement');
1010
const report = require('../util/report');
11+
const astUtil = require('../util/ast');
1112

1213
// ------------------------------------------------------------------------------
1314
// Helpers
@@ -62,7 +63,7 @@ function isInline(node) {
6263
if (node.type === 'JSXElement' && inlineNames.indexOf(node.openingElement.name.name) > -1) {
6364
return true;
6465
}
65-
if (node.type === 'CallExpression' && inlineNames.indexOf(node.arguments[0].value) > -1) {
66+
if (astUtil.isCallExpression(node) && inlineNames.indexOf(node.arguments[0].value) > -1) {
6667
return true;
6768
}
6869
return false;

lib/rules/no-array-index-key.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ module.exports = {
190190
}
191191

192192
if (
193-
node.type === 'CallExpression'
193+
astUtil.isCallExpression(node)
194194
&& node.callee
195195
&& node.callee.type === 'MemberExpression'
196196
&& node.callee.object
@@ -207,7 +207,7 @@ module.exports = {
207207
}
208208

209209
if (
210-
node.type === 'CallExpression'
210+
astUtil.isCallExpression(node)
211211
&& node.callee
212212
&& node.callee.type === 'Identifier'
213213
&& node.callee.name === 'String'

lib/rules/no-object-type-as-default-prop.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const values = require('object.values');
99

1010
const Components = require('../util/Components');
1111
const docsUrl = require('../util/docsUrl');
12+
const astUtil = require('../util/ast');
1213
const report = require('../util/report');
1314

1415
const FORBIDDEN_TYPES_MAP = {
@@ -55,7 +56,7 @@ function verifyDefaultPropsDestructuring(context, properties) {
5556
},
5657
});
5758
} else if (
58-
propDefaultValueType === 'CallExpression'
59+
astUtil.isCallExpression(propDefaultValue.right)
5960
&& propDefaultValue.right.callee.type === 'Identifier'
6061
&& propDefaultValue.right.callee.name === 'Symbol'
6162
) {

lib/rules/no-typos.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
const PROP_TYPES = Object.keys(require('prop-types'));
88
const Components = require('../util/Components');
99
const docsUrl = require('../util/docsUrl');
10+
const astUtil = require('../util/ast');
1011
const componentUtil = require('../util/componentUtil');
1112
const report = require('../util/report');
1213
const lifecycleMethods = require('../util/lifecycleMethods');
@@ -109,11 +110,11 @@ module.exports = {
109110
&& node.property.name !== 'isRequired'
110111
) { // PropTypes.myProp
111112
checkValidPropType(node.property);
112-
} else if (node.object.type === 'CallExpression') {
113+
} else if (astUtil.isCallExpression(node.object)) {
113114
checkValidPropTypeQualifier(node.property);
114115
checkValidCallExpression(node.object);
115116
}
116-
} else if (node.type === 'CallExpression') {
117+
} else if (astUtil.isCallExpression(node)) {
117118
checkValidCallExpression(node);
118119
}
119120
}

0 commit comments

Comments
 (0)