“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 _helperAnnotateAsPure() {
const data = _interopRequireDefault(require("@babel/helper-annotate-as-pure")); _helperAnnotateAsPure = function () { return data; }; return data;
}
function _helperFunctionName() {
const data = _interopRequireDefault(require("@babel/helper-function-name")); _helperFunctionName = function () { return data; }; return data;
}
function _helperSplitExportDeclaration() {
const data = _interopRequireDefault(require("@babel/helper-split-export-declaration")); _helperSplitExportDeclaration = function () { return data; }; return data;
}
function _core() {
const data = require("@babel/core"); _core = function () { return data; }; return data;
}
function _globals() {
const data = _interopRequireDefault(require("globals")); _globals = function () { return data; }; return data;
}
var _transformClass = _interopRequireDefault(require(“./transformClass”));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const getBuiltinClasses = category => Object.keys(_globals().default).filter(name => /^[A-Z]/.test(name));
const builtinClasses = new Set([…getBuiltinClasses(“builtin”), …getBuiltinClasses(“browser”)]);
var _default = (0, _helperPluginUtils().declare)((api, options) => {
api.assertVersion(7); const { loose } = options; const VISITED = Symbol(); return { name: "transform-classes", visitor: { ExportDefaultDeclaration(path) { if (!path.get("declaration").isClassDeclaration()) return; (0, _helperSplitExportDeclaration().default)(path); }, ClassDeclaration(path) { const { node } = path; const ref = node.id || path.scope.generateUidIdentifier("class"); path.replaceWith(_core().types.variableDeclaration("let", [_core().types.variableDeclarator(ref, _core().types.toExpression(node))])); }, ClassExpression(path, state) { const { node } = path; if (node[VISITED]) return; const inferred = (0, _helperFunctionName().default)(path); if (inferred && inferred !== node) { path.replaceWith(inferred); return; } node[VISITED] = true; path.replaceWith((0, _transformClass.default)(path, state.file, builtinClasses, loose)); if (path.isCallExpression()) { (0, _helperAnnotateAsPure().default)(path); if (path.get("callee").isArrowFunctionExpression()) { path.get("callee").arrowFunctionToExpression(); } } } } };
});
exports.default = _default;