release-manifests: workaround for no Promise.any in Node 14

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2022-09-28 19:54:28 +02:00
parent a4496131fa
commit bdc44f025f
+19 -1
View File
@@ -73,7 +73,25 @@ export async function withFallback<T>(
return res;
});
return Promise.any([promise1, promise2]).catch(() => promise1);
// TODO(Rugvip): Replace with this once we no longer support Node 14
// return Promise.any([promise1, promise2]).catch(() => promise1);
return new Promise((resolve, reject) => {
let rejection: Error | undefined = undefined;
promise1.then(resolve, e => {
if (rejection) {
reject(e);
} else {
rejection = e;
}
});
promise2.then(resolve, e => {
if (rejection) {
reject(rejection);
} else {
rejection = e;
}
});
});
}
/**