"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _helperPluginUtils() { const data = require("@babel/helper-plugin-utils"); _helperPluginUtils = function () { return data; }; return data; } function _helperReplaceSupers() { const data = _interopRequireDefault(require("@babel/helper-replace-supers")); _helperReplaceSupers = function () { return data; }; return data; } function _core() { const data = require("@babel/core"); _core = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function replacePropertySuper(path, getObjectRef, file) { const replaceSupers = new (_helperReplaceSupers().default)({ getObjectRef: getObjectRef, methodPath: path, file: file }); replaceSupers.replace(); } var _default = (0, _helperPluginUtils().declare)(api => { api.assertVersion(7); return { name: "transform-object-super", visitor: { ObjectExpression(path, state) { let objectRef; const getObjectRef = () => objectRef = objectRef || path.scope.generateUidIdentifier("obj"); path.get("properties").forEach(propPath => { if (!propPath.isMethod()) return; replacePropertySuper(propPath, getObjectRef, state); }); if (objectRef) { path.scope.push({ id: _core().types.cloneNode(objectRef) }); path.replaceWith(_core().types.assignmentExpression("=", _core().types.cloneNode(objectRef), path.node)); } } } }; }); exports.default = _default;