@openshift-console/dynamic-plugin-sdk-webpack
Version:
Provides webpack ConsoleRemotePlugin used to build all dynamic plugin assets.
26 lines (25 loc) • 943 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.settleAllPromises = void 0;
/**
* Unwrap the result of `Promise.allSettled` call as `[fulfilledValues, rejectedReasons, results]` tuple.
*/
const unwrapPromiseSettledResults = (results) => {
const fulfilledValues = results
.filter((r) => r.status === 'fulfilled')
.map((r) => r.value);
const rejectedReasons = results
.filter((r) => r.status === 'rejected')
.map((r) => r.reason);
return [fulfilledValues, rejectedReasons, results];
};
/**
* Await `Promise.allSettled(promises)` and unwrap the resulting objects.
*
* `Promise.allSettled` never rejects, therefore the resulting `Promise` never rejects.
*/
const settleAllPromises = async (promises) => {
const results = await Promise.allSettled(promises);
return unwrapPromiseSettledResults(results);
};
exports.settleAllPromises = settleAllPromises;
;