45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.lazyImportsHook = void 0;
|
||
|
var _core = require("@babel/core");
|
||
|
var _helperModuleTransforms = require("@babel/helper-module-transforms");
|
||
|
const lazyImportsHook = lazy => ({
|
||
|
name: `${"@babel/plugin-transform-modules-commonjs"}/lazy`,
|
||
|
version: "7.24.8",
|
||
|
getWrapperPayload(source, metadata) {
|
||
|
if ((0, _helperModuleTransforms.isSideEffectImport)(metadata) || metadata.reexportAll) {
|
||
|
return null;
|
||
|
}
|
||
|
if (lazy === true) {
|
||
|
return source.includes(".") ? null : "lazy/function";
|
||
|
}
|
||
|
if (Array.isArray(lazy)) {
|
||
|
return !lazy.includes(source) ? null : "lazy/function";
|
||
|
}
|
||
|
if (typeof lazy === "function") {
|
||
|
return lazy(source) ? "lazy/function" : null;
|
||
|
}
|
||
|
},
|
||
|
buildRequireWrapper(name, init, payload, referenced) {
|
||
|
if (payload === "lazy/function") {
|
||
|
if (!referenced) return false;
|
||
|
return _core.template.statement.ast`
|
||
|
function ${name}() {
|
||
|
const data = ${init};
|
||
|
${name} = function(){ return data; };
|
||
|
return data;
|
||
|
}
|
||
|
`;
|
||
|
}
|
||
|
},
|
||
|
wrapReference(ref, payload) {
|
||
|
if (payload === "lazy/function") return _core.types.callExpression(ref, []);
|
||
|
}
|
||
|
});
|
||
|
exports.lazyImportsHook = lazyImportsHook;
|
||
|
|
||
|
//# sourceMappingURL=lazy.js.map
|