30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.transformDynamicImport = transformDynamicImport;
|
|
|
|
var _core = require("@babel/core");
|
|
|
|
var _helperModuleTransforms = require("@babel/helper-module-transforms");
|
|
|
|
const requireNoInterop = source => _core.template.expression.ast`require(${source})`;
|
|
|
|
const requireInterop = (source, file) => _core.types.callExpression(file.addHelper("interopRequireWildcard"), [requireNoInterop(source)]);
|
|
|
|
function transformDynamicImport(path, noInterop, file) {
|
|
const buildRequire = noInterop ? requireNoInterop : requireInterop;
|
|
const source = (0, _helperModuleTransforms.getDynamicImportSource)(path.node);
|
|
const replacement = _core.types.isStringLiteral(source) || _core.types.isTemplateLiteral(source) && source.quasis.length === 0 ? _core.template.expression.ast`
|
|
Promise.resolve().then(() => ${buildRequire(source, file)})
|
|
` : _core.template.expression.ast`
|
|
Promise.resolve(${source}).then(
|
|
s => ${buildRequire(_core.types.identifier("s"), file)}
|
|
)
|
|
`;
|
|
path.replaceWith(replacement);
|
|
}
|
|
|
|
//# sourceMappingURL=dynamic-import.js.map
|