123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _helperPluginUtils = require("@babel/helper-plugin-utils");
- var _core = require("@babel/core");
- var _default = (0, _helperPluginUtils.declare)(api => {
- api.assertVersion(7);
- function transformStatementList(paths) {
- for (const path of paths) {
- if (!path.isFunctionDeclaration()) continue;
- const func = path.node;
- const declar = _core.types.variableDeclaration("let", [_core.types.variableDeclarator(func.id, _core.types.toExpression(func))]);
- declar._blockHoist = 2;
- func.id = null;
- path.replaceWith(declar);
- }
- }
- return {
- name: "transform-block-scoped-functions",
- visitor: {
- BlockStatement(path) {
- const {
- node,
- parent
- } = path;
- if (_core.types.isFunction(parent, {
- body: node
- }) || _core.types.isExportDeclaration(parent)) {
- return;
- }
- transformStatementList(path.get("body"));
- },
- SwitchCase(path) {
- transformStatementList(path.get("consequent"));
- }
- }
- };
- });
- exports.default = _default;
|