UNPKG

await-to-done

Version:

Async await wrapper for easy error handling

74 lines (69 loc) 2.13 kB
/*! * await-to-done v1.1.1 * Async await wrapper for easy error handling * (c) 2021-2024 saqqdy * Released under the MIT License. */ this.awaitToDone = (function () { 'use strict'; function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); } typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { var e = new Error(message); return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; }; 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]; }); } return Promise.all(__spreadArray([promise], __read(promises), false)).then(function (data) { return [null, data]; }).catch(function (err) { return [err, undefined]; }); } return awaitToDone; })();