source: imaps-frontend/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js

main
Last change on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 1.7 KB
RevLine 
[d565449]1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.buildDynamicImport = buildDynamicImport;
7var _core = require("@babel/core");
8{
9 exports.getDynamicImportSource = function getDynamicImportSource(node) {
10 const [source] = node.arguments;
11 return _core.types.isStringLiteral(source) || _core.types.isTemplateLiteral(source) ? source : _core.template.expression.ast`\`\${${source}}\``;
12 };
13}
14function buildDynamicImport(node, deferToThen, wrapWithPromise, builder) {
15 const specifier = _core.types.isCallExpression(node) ? node.arguments[0] : node.source;
16 if (_core.types.isStringLiteral(specifier) || _core.types.isTemplateLiteral(specifier) && specifier.quasis.length === 0) {
17 if (deferToThen) {
18 return _core.template.expression.ast`
19 Promise.resolve().then(() => ${builder(specifier)})
20 `;
21 } else return builder(specifier);
22 }
23 const specifierToString = _core.types.isTemplateLiteral(specifier) ? _core.types.identifier("specifier") : _core.types.templateLiteral([_core.types.templateElement({
24 raw: ""
25 }), _core.types.templateElement({
26 raw: ""
27 })], [_core.types.identifier("specifier")]);
28 if (deferToThen) {
29 return _core.template.expression.ast`
30 (specifier =>
31 new Promise(r => r(${specifierToString}))
32 .then(s => ${builder(_core.types.identifier("s"))})
33 )(${specifier})
34 `;
35 } else if (wrapWithPromise) {
36 return _core.template.expression.ast`
37 (specifier =>
38 new Promise(r => r(${builder(specifierToString)}))
39 )(${specifier})
40 `;
41 } else {
42 return _core.template.expression.ast`
43 (specifier => ${builder(specifierToString)})(${specifier})
44 `;
45 }
46}
47
48//# sourceMappingURL=dynamic-import.js.map
Note: See TracBrowser for help on using the repository browser.