← Back
Editing: index.js
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _pluginSyntaxAsyncDoExpressions = require("@babel/plugin-syntax-async-do-expressions"); var _helperHoistVariables = require("@babel/helper-hoist-variables"); var _default = (0, _helperPluginUtils.declare)(({ types: t, assertVersion }) => { assertVersion("^7.13.0"); return { name: "proposal-async-do-expressions", inherits: _pluginSyntaxAsyncDoExpressions.default, visitor: { DoExpression: { exit(path) { if (!path.is("async")) { return; } const { scope } = path; (0, _helperHoistVariables.default)(path, id => { scope.push({ id: t.cloneNode(id) }); }, "var"); const bodyPath = path.get("body"); const completionRecords = bodyPath.getCompletionRecords(); for (const p of completionRecords) { if (p.isExpressionStatement()) { p.replaceWith(t.returnStatement(p.node.expression)); } } path.replaceWith(t.callExpression(t.arrowFunctionExpression([], bodyPath.node, true), [])); } } } }; }); exports.default = _default; //# sourceMappingURL=index.js.map
Save File
Cancel