Files
babel/packages/babel-plugin-transform-react-jsx-compat/src/index.js
Clement Hoang 1a7194a22f Add JSX Fragment syntax support (#6552)
* Add JSX Fragments to babel-types

* Support JSX fragments in the transform-react-jsx plugin

* Add tests JSX fragments

* Update helper-builder and transform plugin documentations for jsx fragment

* Add generator for jsx fragments

* Add test for jsx fragment generator

* Split jsx transform example into normal and fragment examples

* Remove unnecessary fields from ElementState in babel-helper-builder-react-jsx

* inline [skip ci]
2017-11-03 10:43:48 -04:00

30 lines
681 B
JavaScript

import helper from "@babel/helper-builder-react-jsx";
export default function({ types: t }) {
return {
manipulateOptions(opts, parserOpts) {
parserOpts.plugins.push("jsx");
},
visitor: helper({
pre(state) {
state.callee = state.tagExpr;
},
post(state) {
if (t.react.isCompatTag(state.tagName)) {
state.call = t.callExpression(
t.memberExpression(
t.memberExpression(t.identifier("React"), t.identifier("DOM")),
state.tagExpr,
t.isLiteral(state.tagExpr),
),
state.args,
);
}
},
compat: true,
}),
};
}