/
asias
/
new
Обзор
Документация
Войти
/
asias
/
new
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/webpack/lib/dependencies/processExportInfo.js
67 строк
2 KB
AnastasyaDemina
project
07 дек 2025, 23:03
07 дек 2025, 23:03
7c21e25
Код
Авторство
О чём код?
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const { UsageState } = require("../ExportsInfo"); /** @typedef {import("../Dependency").RawReferencedExports} RawReferencedExports */ /** @typedef {import("../ExportsInfo").ExportInfo} ExportInfo */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ /** * @param {RuntimeSpec} runtime the runtime * @param {RawReferencedExports} referencedExports list of referenced exports, will be added to * @param {string[]} prefix export prefix * @param {ExportInfo=} exportInfo the export info * @param {boolean} defaultPointsToSelf when true, using default will reference itself * @param {Set<ExportInfo>} alreadyVisited already visited export info (to handle circular reexports) */ 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, exportInfo.name], exportInfo, false, alreadyVisited ); } alreadyVisited.delete(exportInfo); }; module.exports = processExportInfo;