From b54f2ac65c37090d826d462c7fc3399bda4e1ccc Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Mon, 10 Jan 2022 14:00:18 +0100 Subject: [PATCH] use forEachBail from enhanced-resolve --- lib/CacheFacade.js | 19 ++----------------- test/MultiItemCache.unittest.js | 2 +- 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/lib/CacheFacade.js b/lib/CacheFacade.js index aacba78b9..89c7658b5 100644 --- a/lib/CacheFacade.js +++ b/lib/CacheFacade.js @@ -5,6 +5,7 @@ "use strict"; +const { forEachBail } = require("enhanced-resolve"); const asyncLib = require("neo-async"); const getLazyHashedEtag = require("./cache/getLazyHashedEtag"); const mergeEtags = require("./cache/mergeEtags"); @@ -46,23 +47,7 @@ class MultiItemCache { * @returns {void} */ get(callback) { - let i = 0; - let resultFound = false; - const generateGetCallback = (/** @type {Boolean} */ lastItem) => { - return ( - /** @type {import("./WebpackError")} */ err, - /** @type {T} */ res - ) => { - if (resultFound) return; - resultFound = !!(err || res || false); - if (err) return callback(err); - if (res !== undefined) return callback(null, res); - if (lastItem) return callback(); - }; - }; - do { - this._items[i].get(generateGetCallback(i === this._items.length - 1)); - } while (++i < this._items.length); + forEachBail(this._items, (item, callback) => item.get(callback), callback); } /** diff --git a/test/MultiItemCache.unittest.js b/test/MultiItemCache.unittest.js index 7fddfd177..5fde32e7d 100644 --- a/test/MultiItemCache.unittest.js +++ b/test/MultiItemCache.unittest.js @@ -32,7 +32,7 @@ describe("MultiItemCache", () => { const multiItemCache = new MultiItemCache(itemCaches); let callbacks = 0; const callback = (err, res) => { - expect(err).toBeUndefined(); + expect(err).toBeNull(); expect(res).toBeUndefined(); ++callbacks; };