MCPcopy
hub / github.com/webpack/webpack / request

Method request

lib/LazyBarrel.js:310–347  ·  view source on GitHub ↗

* Requests the export names that `dependencies` need from a lazy barrel and * returns the deferred re-export targets that must be built now. Records the * request when the barrel's dependencies were not classified yet. * @param {Module} module the resolved module * @param {Dependency[]} depe

(module, dependencies)

Source from the content-addressed store, hash-verified

308 * @returns {UnlazyDependencyInfo[] | undefined} items to process, if any
309 */
310 request(module, dependencies) {
311 // state only exists for side-effect-free modules, so a non-side-effect-free
312 // module never has state — skip the WeakMap lookup entirely for it
313 const factoryMeta = module.factoryMeta;
314 if (factoryMeta === undefined || !factoryMeta.sideEffectFree) return;
315 const modules = this._modules;
316 const state = modules.get(module);
317
318 if (state === undefined) {
319 const forwardedIds = getForwardedIds(dependencies);
320 if (forwardedIds !== true && forwardedIds.size === 0) return;
321 modules.set(module, {
322 forwardedIds,
323 lazyBarrelInfo: undefined
324 });
325 return;
326 }
327
328 const forwardedIds = getForwardedIds(dependencies);
329 if (forwardedIds !== true && forwardedIds.size === 0) return;
330 if (state.forwardedIds !== true) {
331 if (forwardedIds === true) state.forwardedIds = true;
332 else for (const id of forwardedIds) state.forwardedIds.add(id);
333 }
334 const info = state.lazyBarrelInfo;
335 // Pending requests will be replayed during `classify` later
336 if (info === undefined) return;
337 const groups = info.request(forwardedIds);
338 // drop the per-module state once every deferred target has been built
339 if (info.isEmpty()) state.lazyBarrelInfo = undefined;
340 if (groups.length === 0) return;
341 return groups.map((group) => ({
342 factory: group.factory,
343 dependencies: group.dependencies,
344 context: group.context,
345 originModule: module
346 }));
347 }
348
349 /**
350 * Queues the deferred dependency groups of a lazy barrel requested by a single dependency.

Callers 1

unlazyForDependencyMethod · 0.95

Calls 6

getForwardedIdsFunction · 0.85
getMethod · 0.45
setMethod · 0.45
addMethod · 0.45
requestMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected