MCPcopy
hub / github.com/webpack/webpack / doRealResolve

Method doRealResolve

lib/cache/ResolverCachePlugin.js:154–262  ·  lib/cache/ResolverCachePlugin.js::ResolverCachePlugin.doRealResolve
(
			itemCache,
			resolver,
			resolveContext,
			request,
			callback
		)

Source from the content-addressed store, hash-verified

152 * @returns {void}
153 */
154 const doRealResolve = (
155 itemCache,
156 resolver,
157 resolveContext,
158 request,
159 callback
160 ) => {
161 realResolves++;
162 const newRequest =
163 /** @type {ResolveRequestWithCacheMiss} */
164 ({
165 _ResolverCachePluginCacheMiss: true,
166 ...request
167 });
168 /** @type {ResolveContext} */
169 const newResolveContext = {
170 ...resolveContext,
171 stack: new Set(),
172 missingDependencies: new LazySet(),
173 fileDependencies: new LazySet(),
174 contextDependencies: new LazySet()
175 };
176 /** @type {ResolveRequest[] | undefined} */
177 let yieldResult;
178 let withYield = false;
179 if (typeof newResolveContext.yield === class="st">"function") {
180 yieldResult = [];
181 withYield = true;
182 newResolveContext.yield = (obj) =>
183 /** @type {ResolveRequest[]} */
184 (yieldResult).push(obj);
185 }
186 /**
187 * Processes the provided key.
188 * @param {class="st">"fileDependencies" | class="st">"contextDependencies" | class="st">"missingDependencies"} key key
189 */
190 const propagate = (key) => {
191 if (resolveContext[key]) {
192 addAllToSet(
193 /** @type {Dependencies} */ (resolveContext[key]),
194 /** @type {Dependencies} */ (newResolveContext[key])
195 );
196 }
197 };
198 const resolveTime = Date.now();
199 resolver.doResolve(
200 resolver.hooks.resolve,
201 newRequest,
202 class="st">"Cache miss",
203 newResolveContext,
204 (err, result) => {
205 propagate(class="st">"fileDependencies");
206 propagate(class="st">"contextDependencies");
207 propagate(class="st">"missingDependencies");
208 if (err) return callback(err);
209 const fileDependencies = newResolveContext.fileDependencies;
210 const contextDependencies = newResolveContext.contextDependencies;
211 const missingDependencies = newResolveContext.missingDependencies;

Callers

nothing calls this directly

Calls 4

createSnapshotMethod · 0.80
callbackFunction · 0.50
pushMethod · 0.45
storeMethod · 0.45

Tested by

no test coverage detected