()
| 384 | }) |
| 385 | |
| 386 | const commitProcessing = async () => { |
| 387 | await processingResult.commit() |
| 388 | |
| 389 | // While optimizeDeps is running, new missing deps may be discovered, |
| 390 | // in which case they will keep being added to metadata.discovered |
| 391 | for (const id in metadata.discovered) { |
| 392 | if (!newData.optimized[id]) { |
| 393 | addOptimizedDepInfo(newData, 'discovered', metadata.discovered[id]) |
| 394 | } |
| 395 | } |
| 396 | |
| 397 | // If we don't reload the page, we need to keep browserHash stable |
| 398 | if (!needsReload) { |
| 399 | newData.browserHash = metadata.browserHash |
| 400 | for (const dep in newData.chunks) { |
| 401 | newData.chunks[dep].browserHash = metadata.browserHash |
| 402 | } |
| 403 | for (const dep in newData.optimized) { |
| 404 | newData.optimized[dep].browserHash = ( |
| 405 | metadata.optimized[dep] || metadata.discovered[dep] |
| 406 | ).browserHash |
| 407 | } |
| 408 | } |
| 409 | |
| 410 | // Commit hash and needsInterop changes to the discovered deps info |
| 411 | // object. Allow for code to await for the discovered processing promise |
| 412 | // and use the information in the same object |
| 413 | for (const o in newData.optimized) { |
| 414 | const discovered = metadata.discovered[o] |
| 415 | if (discovered) { |
| 416 | const optimized = newData.optimized[o] |
| 417 | discovered.browserHash = optimized.browserHash |
| 418 | discovered.fileHash = optimized.fileHash |
| 419 | discovered.needsInterop = optimized.needsInterop |
| 420 | discovered.processing = undefined |
| 421 | } |
| 422 | } |
| 423 | |
| 424 | if (isRerun) { |
| 425 | newDepsToLog.push( |
| 426 | ...Object.keys(newData.optimized).filter( |
| 427 | (dep) => !metadata.optimized[dep], |
| 428 | ), |
| 429 | ) |
| 430 | } |
| 431 | |
| 432 | metadata = depsOptimizer.metadata = newData |
| 433 | resolveEnqueuedProcessingPromises() |
| 434 | } |
| 435 | |
| 436 | if (!needsReload) { |
| 437 | await commitProcessing() |
no test coverage detected