diff options
Diffstat (limited to 'node_modules/@babel/plugin-transform-classes/lib/index.js')
| -rw-r--r-- | node_modules/@babel/plugin-transform-classes/lib/index.js | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/node_modules/@babel/plugin-transform-classes/lib/index.js b/node_modules/@babel/plugin-transform-classes/lib/index.js new file mode 100644 index 00000000..180c0551 --- /dev/null +++ b/node_modules/@babel/plugin-transform-classes/lib/index.js @@ -0,0 +1,119 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +function _helperPluginUtils() { + const data = require("@babel/helper-plugin-utils"); + + _helperPluginUtils = function _helperPluginUtils() { + return data; + }; + + return data; +} + +function _helperAnnotateAsPure() { + const data = _interopRequireDefault(require("@babel/helper-annotate-as-pure")); + + _helperAnnotateAsPure = function _helperAnnotateAsPure() { + return data; + }; + + return data; +} + +function _helperFunctionName() { + const data = _interopRequireDefault(require("@babel/helper-function-name")); + + _helperFunctionName = function _helperFunctionName() { + return data; + }; + + return data; +} + +function _helperSplitExportDeclaration() { + const data = _interopRequireDefault(require("@babel/helper-split-export-declaration")); + + _helperSplitExportDeclaration = function _helperSplitExportDeclaration() { + return data; + }; + + return data; +} + +function _core() { + const data = require("@babel/core"); + + _core = function _core() { + return data; + }; + + return data; +} + +function _globals() { + const data = _interopRequireDefault(require("globals")); + + _globals = function _globals() { + 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[category]).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.loose; + const VISITED = Symbol(); + return { + visitor: { + ExportDefaultDeclaration(path) { + if (!path.get("declaration").isClassDeclaration()) return; + (0, _helperSplitExportDeclaration().default)(path); + }, + + ClassDeclaration(path) { + const node = path.node; + 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.node; + 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;
\ No newline at end of file |
