UNPKG

1.84 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _pluginSyntaxJsx = _interopRequireDefault(require("@babel/plugin-syntax-jsx"));
9
10var _helperBuilderReactJsxExperimental = require("@babel/helper-builder-react-jsx-experimental");
11
12var _helperPluginUtils = require("@babel/helper-plugin-utils");
13
14var _core = require("@babel/core");
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18var _default = (0, _helperPluginUtils.declare)((api, options) => {
19 const PURE_ANNOTATION = options.pure;
20 const visitor = (0, _helperBuilderReactJsxExperimental.helper)(api, Object.assign({
21 pre(state) {
22 const tagName = state.tagName;
23 const args = state.args;
24
25 if (_core.types.react.isCompatTag(tagName)) {
26 args.push(_core.types.stringLiteral(tagName));
27 } else {
28 args.push(state.tagExpr);
29 }
30 },
31
32 post(state, pass) {
33 if (pass.get("@babel/plugin-react-jsx/runtime") === "classic") {
34 state.createElementCallee = pass.get("@babel/plugin-react-jsx/createElementIdentifier")();
35 state.pure = PURE_ANNOTATION != null ? PURE_ANNOTATION : !pass.get("@babel/plugin-react-jsx/pragmaSet");
36 } else {
37 state.jsxCallee = pass.get("@babel/plugin-react-jsx/jsxIdentifier")();
38 state.jsxStaticCallee = pass.get("@babel/plugin-react-jsx/jsxStaticIdentifier")();
39 state.createElementCallee = pass.get("@babel/plugin-react-jsx/createElementIdentifier")();
40 state.pure = PURE_ANNOTATION != null ? PURE_ANNOTATION : !pass.get("@babel/plugin-react-jsx/importSourceSet");
41 }
42 }
43
44 }, options, {
45 development: false
46 }));
47 return {
48 name: "transform-react-jsx",
49 inherits: _pluginSyntaxJsx.default,
50 visitor
51 };
52});
53
54exports.default = _default;
\No newline at end of file