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