From cbaf278e433eee723fef4d96c35fbc07f728b1c6 Mon Sep 17 00:00:00 2001 From: Chiawen Chen Date: Wed, 20 Apr 2022 02:55:14 +0800 Subject: [PATCH] remove isCreateClass from components util --- lib/rules/jsx-indent.js | 3 +-- lib/util/Components.js | 17 +++-------------- lib/util/jsx.js | 11 ++++------- tests/util/jsx.js | 2 +- 4 files changed, 9 insertions(+), 24 deletions(-) diff --git a/lib/rules/jsx-indent.js b/lib/rules/jsx-indent.js index 88d177d30e..ad14fa6a34 100644 --- a/lib/rules/jsx-indent.js +++ b/lib/rules/jsx-indent.js @@ -36,7 +36,6 @@ const astUtil = require('../util/ast'); const docsUrl = require('../util/docsUrl'); const reportC = require('../util/report'); const jsxUtil = require('../util/jsx'); -const isCreateElement = require('../util/isCreateElement'); // ------------------------------------------------------------------------------ // Rule Definition @@ -428,7 +427,7 @@ module.exports = { } if ( !fn - || !jsxUtil.isReturningJSX((n) => isCreateElement(n, context), node, context, true) + || !jsxUtil.isReturningJSX(node, context, true) ) { return; } diff --git a/lib/util/Components.js b/lib/util/Components.js index f78029bdd8..4b545fa75a 100644 --- a/lib/util/Components.js +++ b/lib/util/Components.js @@ -18,7 +18,6 @@ const jsxUtil = require('./jsx'); const usedPropTypesUtil = require('./usedPropTypes'); const defaultPropsUtil = require('./defaultProps'); const isFirstLetterCapitalized = require('./isFirstLetterCapitalized'); -const isCreateElement = require('./isCreateElement'); const isDestructuredFromPragmaImport = require('./isDestructuredFromPragmaImport'); function getId(node) { @@ -266,26 +265,16 @@ function componentRule(rule, context) { return isDestructuredFromPragmaImport(variable, context); }, - /** - * Checks to see if node is called within createElement from pragma - * - * @param {ASTNode} node The AST node being checked. - * @returns {Boolean} True if createElement called from pragma - */ - isCreateElement(node) { - return isCreateElement(node, context); - }, - isReturningJSX(ASTNode, strict) { - return jsxUtil.isReturningJSX(this.isCreateElement.bind(this), ASTNode, context, strict, true); + return jsxUtil.isReturningJSX(ASTNode, context, strict, true); }, isReturningJSXOrNull(ASTNode, strict) { - return jsxUtil.isReturningJSX(this.isCreateElement.bind(this), ASTNode, context, strict); + return jsxUtil.isReturningJSX(ASTNode, context, strict); }, isReturningOnlyNull(ASTNode) { - return jsxUtil.isReturningOnlyNull(this.isCreateElement.bind(this), ASTNode, context); + return jsxUtil.isReturningOnlyNull(ASTNode, context); }, getPragmaComponentWrapper(node) { diff --git a/lib/util/jsx.js b/lib/util/jsx.js index 46930f0b9d..55073bfe1e 100644 --- a/lib/util/jsx.js +++ b/lib/util/jsx.js @@ -7,6 +7,7 @@ const elementType = require('jsx-ast-utils/elementType'); const astUtil = require('./ast'); +const isCreateElement = require('./isCreateElement'); const variableUtil = require('./variable'); // See https://github.com/babel/babel/blob/ce420ba51c68591e057696ef43e028f41c6e04cd/packages/babel-types/src/validators/react/isCompatTag.js @@ -85,15 +86,13 @@ function isWhiteSpaces(value) { /** * Check if the node is returning JSX or null * - * @param {Function} isCreateElement Function to determine if a CallExpresion is - * a createElement one * @param {ASTNode} ASTnode The AST node being checked * @param {Context} context The context of `ASTNode`. * @param {Boolean} [strict] If true, in a ternary condition the node must return JSX in both cases * @param {Boolean} [ignoreNull] If true, null return values will be ignored * @returns {Boolean} True if the node is returning JSX or null, false if not */ -function isReturningJSX(isCreateElement, ASTnode, context, strict, ignoreNull) { +function isReturningJSX(ASTnode, context, strict, ignoreNull) { const isJSXValue = (node) => { if (!node) { return false; @@ -115,7 +114,7 @@ function isReturningJSX(isCreateElement, ASTnode, context, strict, ignoreNull) { case 'JSXFragment': return true; case 'CallExpression': - return isCreateElement(node); + return isCreateElement(node, context); case 'Literal': if (!ignoreNull && node.value === null) { return true; @@ -144,13 +143,11 @@ function isReturningJSX(isCreateElement, ASTnode, context, strict, ignoreNull) { /** * Check if the node is returning only null values * - * @param {Function} isCreateElement Function to determine if a CallExpresion is - * a createElement one * @param {ASTNode} ASTnode The AST node being checked * @param {Context} context The context of `ASTNode`. * @returns {Boolean} True if the node is returning only null values */ -function isReturningOnlyNull(isCreateElement, ASTnode, context) { +function isReturningOnlyNull(ASTnode, context) { let found = false; let foundSomethingElse = false; astUtil.traverseReturns(ASTnode, context, (node) => { diff --git a/tests/util/jsx.js b/tests/util/jsx.js index 6aef83e0a4..c8009fc005 100644 --- a/tests/util/jsx.js +++ b/tests/util/jsx.js @@ -34,7 +34,7 @@ const mockContext = { describe('jsxUtil', () => { describe('isReturningJSX', () => { const assertValid = (codeStr) => assert( - isReturningJSX(() => false, parseCode(codeStr), mockContext) + isReturningJSX(parseCode(codeStr), mockContext) ); it('Works when returning JSX', () => {