MCPcopy
hub / github.com/rollup/rollup / getAndExtendSideEffectModules

Function getAndExtendSideEffectModules

src/Module.ts:190–220  ·  view source on GitHub ↗
(variable: Variable, module: Module)

Source from the content-addressed store, hash-verified

188}
189
190function getAndExtendSideEffectModules(variable: Variable, module: Module): Set<Module> {
191 const sideEffectModules = getOrCreate(
192 module.sideEffectDependenciesByVariable,
193 variable,
194 getNewSet<Module>
195 );
196 let currentVariable: Variable | null = variable;
197 const referencedVariables = new Set([currentVariable]);
198 while (true) {
199 const importingModule = currentVariable.module! as Module;
200 currentVariable =
201 currentVariable instanceof ExportDefaultVariable
202 ? currentVariable.getDirectOriginalVariable()
203 : currentVariable instanceof SyntheticNamedExportVariable
204 ? currentVariable.syntheticNamespace
205 : null;
206 if (!currentVariable || referencedVariables.has(currentVariable)) {
207 break;
208 }
209 referencedVariables.add(currentVariable);
210 sideEffectModules.add(importingModule);
211 const originalSideEffects =
212 importingModule.sideEffectDependenciesByVariable.get(currentVariable);
213 if (originalSideEffects) {
214 for (const module of originalSideEffects) {
215 sideEffectModules.add(module);
216 }
217 }
218 }
219 return sideEffectModules;
220}
221
222export default class Module {
223 readonly alternativeReexportModules = new Map<Variable, Module>();

Callers 1

includeVariableMethod · 0.85

Calls 5

getOrCreateFunction · 0.90
addMethod · 0.80
getMethod · 0.80
hasMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…