Spaces:
Running
Running
| /* | |
| * Partially adapted from @babel/core (MIT license). | |
| */ "use strict"; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| Object.defineProperty(exports, "default", { | |
| enumerable: true, | |
| get: function() { | |
| return transform; | |
| } | |
| }); | |
| const _traverse = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/babel/traverse")); | |
| const _generator = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/babel/generator")); | |
| const _corelibnormalizefile = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/babel/core-lib-normalize-file")); | |
| const _corelibnormalizeopts = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/babel/core-lib-normalize-opts")); | |
| const _corelibblockhoistplugin = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/babel/core-lib-block-hoist-plugin")); | |
| const _corelibpluginpass = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/babel/core-lib-plugin-pass")); | |
| const _getconfig = /*#__PURE__*/ _interop_require_default(require("./get-config")); | |
| const _util = require("./util"); | |
| function _interop_require_default(obj) { | |
| return obj && obj.__esModule ? obj : { | |
| default: obj | |
| }; | |
| } | |
| function getTraversalParams(file, pluginPairs) { | |
| const passPairs = []; | |
| const passes = []; | |
| const visitors = []; | |
| for (const plugin of pluginPairs.concat((0, _corelibblockhoistplugin.default)())){ | |
| const pass = new _corelibpluginpass.default(file, plugin.key, plugin.options); | |
| passPairs.push([ | |
| plugin, | |
| pass | |
| ]); | |
| passes.push(pass); | |
| visitors.push(plugin.visitor); | |
| } | |
| return { | |
| passPairs, | |
| passes, | |
| visitors | |
| }; | |
| } | |
| function invokePluginPre(file, passPairs) { | |
| for (const [{ pre }, pass] of passPairs){ | |
| if (pre) { | |
| pre.call(pass, file); | |
| } | |
| } | |
| } | |
| function invokePluginPost(file, passPairs) { | |
| for (const [{ post }, pass] of passPairs){ | |
| if (post) { | |
| post.call(pass, file); | |
| } | |
| } | |
| } | |
| function transformAstPass(file, pluginPairs, parentSpan) { | |
| const { passPairs, passes, visitors } = getTraversalParams(file, pluginPairs); | |
| invokePluginPre(file, passPairs); | |
| const visitor = _traverse.default.visitors.merge(visitors, passes, // @ts-ignore - the exported types are incorrect here | |
| file.opts.wrapPluginVisitorMethod); | |
| parentSpan.traceChild('babel-turbo-traverse').traceFn(()=>(0, _traverse.default)(file.ast, visitor, file.scope)); | |
| invokePluginPost(file, passPairs); | |
| } | |
| function transformAst(file, babelConfig, parentSpan) { | |
| for (const pluginPairs of babelConfig.passes){ | |
| transformAstPass(file, pluginPairs, parentSpan); | |
| } | |
| } | |
| async function transform(ctx, source, inputSourceMap, loaderOptions, filename, target, parentSpan) { | |
| const getConfigSpan = parentSpan.traceChild('babel-turbo-get-config'); | |
| const babelConfig = await (0, _getconfig.default)(ctx, { | |
| source, | |
| loaderOptions, | |
| inputSourceMap: inputSourceMap ?? undefined, | |
| target, | |
| filename | |
| }); | |
| if (!babelConfig) { | |
| return { | |
| code: source, | |
| map: inputSourceMap ?? null | |
| }; | |
| } | |
| getConfigSpan.stop(); | |
| const normalizeSpan = parentSpan.traceChild('babel-turbo-normalize-file'); | |
| const file = (0, _util.consumeIterator)((0, _corelibnormalizefile.default)(babelConfig.passes, (0, _corelibnormalizeopts.default)(babelConfig), source)); | |
| normalizeSpan.stop(); | |
| const transformSpan = parentSpan.traceChild('babel-turbo-transform'); | |
| transformAst(file, babelConfig, transformSpan); | |
| transformSpan.stop(); | |
| const generateSpan = parentSpan.traceChild('babel-turbo-generate'); | |
| const { code, map } = (0, _generator.default)(file.ast, file.opts.generatorOpts, file.code); | |
| generateSpan.stop(); | |
| return { | |
| code, | |
| map | |
| }; | |
| } | |
| //# sourceMappingURL=transform.js.map |