use forEachBail from enhanced-resolve

This commit is contained in:
Tobias Koppers 2022-01-10 14:00:18 +01:00
parent 9c6557e8ec
commit b54f2ac65c
2 changed files with 3 additions and 18 deletions

View File

@ -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);
}
/**

View File

@ -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;
};