index.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. function _helperPluginUtils() {
  7. const data = require("@babel/helper-plugin-utils");
  8. _helperPluginUtils = function () {
  9. return data;
  10. };
  11. return data;
  12. }
  13. function _helperReplaceSupers() {
  14. const data = _interopRequireDefault(require("@babel/helper-replace-supers"));
  15. _helperReplaceSupers = function () {
  16. return data;
  17. };
  18. return data;
  19. }
  20. function _core() {
  21. const data = require("@babel/core");
  22. _core = function () {
  23. return data;
  24. };
  25. return data;
  26. }
  27. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  28. function replacePropertySuper(path, getObjectRef, file) {
  29. const replaceSupers = new (_helperReplaceSupers().default)({
  30. getObjectRef: getObjectRef,
  31. methodPath: path,
  32. file: file
  33. });
  34. replaceSupers.replace();
  35. }
  36. var _default = (0, _helperPluginUtils().declare)(api => {
  37. api.assertVersion(7);
  38. return {
  39. name: "transform-object-super",
  40. visitor: {
  41. ObjectExpression(path, state) {
  42. let objectRef;
  43. const getObjectRef = () => objectRef = objectRef || path.scope.generateUidIdentifier("obj");
  44. path.get("properties").forEach(propPath => {
  45. if (!propPath.isMethod()) return;
  46. replacePropertySuper(propPath, getObjectRef, state);
  47. });
  48. if (objectRef) {
  49. path.scope.push({
  50. id: _core().types.cloneNode(objectRef)
  51. });
  52. path.replaceWith(_core().types.assignmentExpression("=", _core().types.cloneNode(objectRef), path.node));
  53. }
  54. }
  55. }
  56. };
  57. });
  58. exports.default = _default;