1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- "use strict";
- const { UsageState } = require("../ExportsInfo");
- const processExportInfo = (
- runtime,
- referencedExports,
- prefix,
- exportInfo,
- defaultPointsToSelf = false,
- alreadyVisited = new Set()
- ) => {
- if (!exportInfo) {
- referencedExports.push(prefix);
- return;
- }
- const used = exportInfo.getUsed(runtime);
- if (used === UsageState.Unused) return;
- if (alreadyVisited.has(exportInfo)) {
- referencedExports.push(prefix);
- return;
- }
- alreadyVisited.add(exportInfo);
- if (
- used !== UsageState.OnlyPropertiesUsed ||
- !exportInfo.exportsInfo ||
- exportInfo.exportsInfo.otherExportsInfo.getUsed(runtime) !==
- UsageState.Unused
- ) {
- alreadyVisited.delete(exportInfo);
- referencedExports.push(prefix);
- return;
- }
- const exportsInfo = exportInfo.exportsInfo;
- for (const exportInfo of exportsInfo.orderedExports) {
- processExportInfo(
- runtime,
- referencedExports,
- defaultPointsToSelf && exportInfo.name === "default"
- ? prefix
- : prefix.concat(exportInfo.name),
- exportInfo,
- false,
- alreadyVisited
- );
- }
- alreadyVisited.delete(exportInfo);
- };
- module.exports = processExportInfo;
|