@@ -9,7 +9,7 @@ const traverse = require("@babel/traverse").default;
99 * @param {import('jscodeshift').FileInfo } file
1010 * @param {import('jscodeshift').API } api
1111 */
12- const deprecatedReactChildTransform = ( file , api ) => {
12+ const scopedJsxTransform = ( file , api ) => {
1313 const j = api . jscodeshift ;
1414 const ast = parseSync ( file ) ;
1515
@@ -34,7 +34,7 @@ const deprecatedReactChildTransform = (file, api) => {
3434 } ,
3535 } ) ;
3636
37- if ( hasGlobalNamespaceReferences ) {
37+ if ( hasGlobalNamespaceReferences && ! isJsxAlreadyImported ( j , ast ) ) {
3838 const reactImport = findReactImportForNewImports ( j , ast ) ;
3939 const jsxImportSpecifier = reactImport . find ( j . ImportSpecifier , {
4040 imported : { name : "JSX" } ,
@@ -73,4 +73,16 @@ const deprecatedReactChildTransform = (file, api) => {
7373 return file . source ;
7474} ;
7575
76- module . exports = deprecatedReactChildTransform ;
76+ /**
77+ * @param {import('jscodeshift').API['jscodeshift'] } j
78+ * @param {import('jscodeshift').Collection } ast
79+ */
80+ function isJsxAlreadyImported ( j , ast ) {
81+ return (
82+ ast . find ( j . ImportSpecifier , {
83+ local : { name : "JSX" } ,
84+ } ) . length > 0
85+ ) ;
86+ }
87+
88+ module . exports = scopedJsxTransform ;
0 commit comments