From 3eaae41e175ea4debe74158c690d554b2af83374 Mon Sep 17 00:00:00 2001 From: Andrey Kuzmin Date: Wed, 23 Jun 2021 10:28:44 +0300 Subject: [PATCH 1/2] feat(component): - add support for webpack compilation --- index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 8191942..7fbb381 100644 --- a/index.js +++ b/index.js @@ -14,7 +14,10 @@ function functionComponent(component) { typeof component === 'function' && String(component).includes('return') && !!String(component).match(FUNCTION_REGEX) && - String(component).includes('.createElement') + // Webpack create syntax like this: + // /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\" ... + // String(component).includes('.createElement') + String(component).includes('createElement') ); } From 8545c488673bc67767226ee97cd925425f3f9682 Mon Sep 17 00:00:00 2001 From: Andrey Kuzmin Date: Tue, 13 Jul 2021 17:55:57 +0300 Subject: [PATCH 2/2] feat(functionComp): - add support for new automatic runtime --- index.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 7fbb381..906a7b3 100644 --- a/index.js +++ b/index.js @@ -10,14 +10,21 @@ function classComponent(component) { // Ensure compatability with transformed code function functionComponent(component) { + const componentStr = String(component) + return ( typeof component === 'function' && - String(component).includes('return') && - !!String(component).match(FUNCTION_REGEX) && + // componentStr.includes('return') && + !!componentStr.match(FUNCTION_REGEX) && // Webpack create syntax like this: // /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\" ... // String(component).includes('.createElement') - String(component).includes('createElement') + ( + componentStr.includes('createElement') + // new automatic runtime + || componentStr.includes('react_jsx_runtime') // react/jsx-runtime + || componentStr.includes('react_jsx_dev_runtime') // react/jsx-dev-runtime + ) ); }