mirror of https://github.com/webpack/webpack.git
				
				
				
			fix redirect caching in HttpUriPlugin
This commit is contained in:
		
							parent
							
								
									a6099c4ff9
								
							
						
					
					
						commit
						c128f4fe44
					
				|  | @ -509,7 +509,7 @@ class HttpUriPlugin { | |||
| 
 | ||||
| 					/** | ||||
| 					 * @param {string} url URL | ||||
| 					 * @param {FetchResult} cachedResult result from cache | ||||
| 					 * @param {FetchResult | RedirectFetchResult} cachedResult result from cache | ||||
| 					 * @param {function((Error | null)=, FetchResult=): void} callback callback | ||||
| 					 * @returns {void} | ||||
| 					 */ | ||||
|  | @ -543,15 +543,6 @@ class HttpUriPlugin { | |||
| 										logger.debug( | ||||
| 											`GET ${url} [${res.statusCode}] -> ${partialResult.location}` | ||||
| 										); | ||||
| 										// we should follow redirect and not store partial result
 | ||||
| 										return callback(null, { | ||||
| 											...partialResult, | ||||
| 											storeLock, | ||||
| 											storeCache, | ||||
| 											fresh: true, | ||||
| 											etag: undefined, | ||||
| 											validUntil: undefined | ||||
| 										}); | ||||
| 									} else { | ||||
| 										logger.debug( | ||||
| 											`GET ${url} [${res.statusCode}] ${Math.ceil( | ||||
|  | @ -612,10 +603,31 @@ class HttpUriPlugin { | |||
| 									res.statusCode >= 301 && | ||||
| 									res.statusCode <= 308 | ||||
| 								) { | ||||
| 									return finishWith({ | ||||
| 									const result = { | ||||
| 										location: new URL(location, url).href | ||||
| 									}; | ||||
| 									if ( | ||||
| 										!cachedResult || | ||||
| 										!("location" in cachedResult) || | ||||
| 										cachedResult.location !== result.location || | ||||
| 										cachedResult.validUntil < validUntil || | ||||
| 										cachedResult.storeLock !== storeLock || | ||||
| 										cachedResult.storeCache !== storeCache || | ||||
| 										cachedResult.etag !== etag | ||||
| 									) { | ||||
| 										return finishWith(result); | ||||
| 									} else { | ||||
| 										logger.debug(`GET ${url} [${res.statusCode}] (unchanged)`); | ||||
| 										return callback(null, { | ||||
| 											...result, | ||||
| 											fresh: true, | ||||
| 											storeLock, | ||||
| 											storeCache, | ||||
| 											validUntil, | ||||
| 											etag | ||||
| 										}); | ||||
| 									} | ||||
| 								} | ||||
| 								const contentType = res.headers["content-type"] || ""; | ||||
| 								const bufferArr = []; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue