await-to-done
Version:
Async await wrapper for easy error handling - zero dependencies
37 lines (34 loc) • 995 B
JavaScript
/*!
* await-to-done v1.2.0
* Async await wrapper for easy error handling - zero dependencies
* (c) 2021-2026 saqqdy
* Released under the MIT License.
*/
;
function awaitToDone(promise) {
var promises = [];
for (var _i = 1; _i < arguments.length; _i++) {
promises[_i - 1] = arguments[_i];
}
if (Array.isArray(promise)) {
return Promise.all(promise).then(function (data) {
return [null, data];
})["catch"](function (err) {
return [err, undefined];
});
} else if (promises.length === 0) {
return promise.then(function (data) {
return [null, data];
})["catch"](function (err) {
return [err, undefined];
});
}
// Use Array.prototype.concat instead of spread to avoid TypeScript helpers
var allPromises = [promise].concat(promises);
return Promise.all(allPromises).then(function (data) {
return [null, data];
})["catch"](function (err) {
return [err, undefined];
});
}
module.exports = awaitToDone;