dynamic-import.js 1.1 KB

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.transformDynamicImport = transformDynamicImport;
  6. var _core = require("@babel/core");
  7. var _helperModuleTransforms = require("@babel/helper-module-transforms");
  8. const requireNoInterop = source => _core.template.expression.ast`require(${source})`;
  9. const requireInterop = (source, file) => _core.types.callExpression(file.addHelper("interopRequireWildcard"), [requireNoInterop(source)]);
  10. function transformDynamicImport(path, noInterop, file) {
  11. const buildRequire = noInterop ? requireNoInterop : requireInterop;
  12. const source = (0, _helperModuleTransforms.getDynamicImportSource)(path.node);
  13. const replacement = _core.types.isStringLiteral(source) || _core.types.isTemplateLiteral(source) && source.quasis.length === 0 ? _core.template.expression.ast`
  14. Promise.resolve().then(() => ${buildRequire(source, file)})
  15. ` : _core.template.expression.ast`
  16. Promise.resolve(${source}).then(
  17. s => ${buildRequire(_core.types.identifier("s"), file)}
  18. )
  19. `;
  20. path.replaceWith(replacement);
  21. }
  22. //# sourceMappingURL=dynamic-import.js.map