diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/input.js new file mode 100644 index 000000000000..80faad5b4f77 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/input.js @@ -0,0 +1,11 @@ +import React from 'react'; + +export default function App() { + return ( +
+

Welcome to my application!

+ This is my app! + MINE. +
+ ) +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/options.json new file mode 100644 index 000000000000..70749cdfc8db --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/options.json @@ -0,0 +1,5 @@ +{ + "sourceType": "module", + "plugins": [["transform-react-jsx", { "runtime": "classic" }]], + "sourceMap": true +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/output.mjs new file mode 100644 index 000000000000..d295dcddc388 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/output.mjs @@ -0,0 +1,6 @@ +import React from 'react'; +export default function App() { + return /*#__PURE__*/React.createElement("div", { + className: "App" + }, /*#__PURE__*/React.createElement("h1", null, "Welcome to my application!"), "This is my app!", /*#__PURE__*/React.createElement("strong", null, "MINE.")); +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/source-map.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/source-map.json new file mode 100644 index 000000000000..1afb281ac7e1 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/sourcemaps/JSXText/source-map.json @@ -0,0 +1,14 @@ +{ + "version": 3, + "names": [ + "React", + "App" + ], + "sources": [ + "sourcemaps/JSXText/input.js" + ], + "sourcesContent": [ + "import React from 'react';\n\nexport default function App() {\n return (\n
\n

Welcome to my application!

\n This is my app!\n MINE.\n
\n )\n}" + ], + "mappings": "AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,eAAe,SAASC,GAAG,GAAG;EAC5B,oBACE;IAAK,SAAS,EAAC;EAAK,gBAClB,gCAAI,4BAA0B,CAAK,mBAEnC,mDAAQ,OAAK,CAAS,CAClB;AAEV" +} \ No newline at end of file diff --git a/packages/babel-types/src/utils/react/cleanJSXElementLiteralChild.ts b/packages/babel-types/src/utils/react/cleanJSXElementLiteralChild.ts index a4039e65c79c..969ae0ffb6c5 100644 --- a/packages/babel-types/src/utils/react/cleanJSXElementLiteralChild.ts +++ b/packages/babel-types/src/utils/react/cleanJSXElementLiteralChild.ts @@ -1,10 +1,9 @@ import { stringLiteral } from "../../builders/generated"; import type * as t from "../.."; +import { inherits } from "../.."; export default function cleanJSXElementLiteralChild( - child: { - value: string; - }, + child: t.JSXText, args: Array, ) { const lines = child.value.split(/\r\n|\n|\r/); @@ -48,5 +47,5 @@ export default function cleanJSXElementLiteralChild( } } - if (str) args.push(stringLiteral(str)); + if (str) args.push(inherits(stringLiteral(str), child)); }