* 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)
| 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. |
no test coverage detected