MCPcopy
hub / github.com/webpack/webpack / _computeAffectedModules

Method _computeAffectedModules

lib/Compilation.js:2837–3006  ·  lib/Compilation.js::Compilation._computeAffectedModules

* Compute affected modules. * @private * @param {Set<Module>} modules modules

(modules)

Source from the content-addressed store, hash-verified

2835 * @param {Set<Module>} modules modules
2836 */
2837 _computeAffectedModules(modules) {
2838 const moduleMemCacheCache = this.compiler.moduleMemCaches;
2839 if (!moduleMemCacheCache) return;
2840 if (!this.moduleMemCaches) {
2841 this.moduleMemCaches = new Map();
2842 this.moduleGraph.setModuleMemCaches(this.moduleMemCaches);
2843 }
2844 const { moduleGraph, moduleMemCaches } = this;
2845 /** @type {Set<Module>} */
2846 const affectedModules = new Set();
2847 /** @type {Set<Module>} */
2848 const infectedModules = new Set();
2849 let statNew = 0;
2850 let statChanged = 0;
2851 let statUnchanged = 0;
2852 let statReferencesChanged = 0;
2853 let statWithoutBuild = 0;
2854
2855 /**
2856 * Compute references.
2857 * @param {Module} module module
2858 * @returns {WeakReferences | undefined} references
2859 */
2860 const computeReferences = (module) => {
2861 /** @type {WeakReferences | undefined} */
2862 let references;
2863 for (const connection of moduleGraph.getOutgoingConnections(module)) {
2864 const d = connection.dependency;
2865 const m = connection.module;
2866 if (!d || !m || unsafeCacheDependencies.has(d)) continue;
2867 if (references === undefined) references = new WeakMap();
2868 references.set(d, m);
2869 }
2870 return references;
2871 };
2872
2873 /**
2874 * Compares references.
2875 * @param {Module} module the module
2876 * @param {WeakReferences | undefined} references references
2877 * @returns {boolean} true, when the references differ
2878 */
2879 const compareReferences = (module, references) => {
2880 if (references === undefined) return true;
2881 for (const connection of moduleGraph.getOutgoingConnections(module)) {
2882 const d = connection.dependency;
2883 if (!d) continue;
2884 const entry = references.get(d);
2885 if (entry === undefined) continue;
2886 if (entry !== connection.module) return false;
2887 }
2888 return true;
2889 };
2890
2891 const modulesWithoutCache = new Set(modules);
2892 for (const [module, cachedMemCache] of moduleMemCacheCache) {
2893 if (modulesWithoutCache.has(module)) {
2894 const buildInfo = module.buildInfo;

Callers 1

finishMethod · 0.95

Calls 9

reduceAffectTypeFunction · 0.85
setModuleMemCachesMethod · 0.80
logMethod · 0.80
hasMethod · 0.45
setMethod · 0.45
addMethod · 0.45
deleteMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected