You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
"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.28.6", |
|
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
|
|
|