@lakutata/core
Version:
Lakutata Framework Core
27 lines • 1.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.timeout = void 0;
const p_timeout_1 = __importDefault(require("p-timeout"));
const TimeoutException_1 = require("../exceptions/TimeoutException");
async function timeout(p, milliseconds, messageOrFallback) {
return (0, p_timeout_1.default)(p, milliseconds, async () => {
if (messageOrFallback) {
switch (typeof messageOrFallback) {
case 'function':
return (await messageOrFallback());
case 'string':
throw new TimeoutException_1.TimeoutException(messageOrFallback);
case 'object':
throw messageOrFallback;
}
}
else {
throw new TimeoutException_1.TimeoutException(`Promise timed out after ${milliseconds} milliseconds`);
}
});
}
exports.timeout = timeout;
//# sourceMappingURL=Timeout.js.map