index.js 1.8 KB

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