corde
Version:
A simple library for Discord bot tests
37 lines (29 loc) • 837 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.executePromiseWithTimeout = void 0;
const errors_1 = require("../errors");
const utils_1 = require("./utils");
function executePromiseWithTimeout(fn, timeout, rejectedData) {
if (!fn) {
throw new Error("can not execute an null function");
}
if (utils_1.utils.isInDebugMode()) {
return new Promise((resolve, reject) => {
fn((value) => {
resolve(value);
}, reject);
});
}
return new Promise((resolve, reject) => {
const nodeTimeout = setTimeout(() => {
reject(new errors_1.TimeoutError("timeout", rejectedData));
}, timeout);
fn((value) => {
clearTimeout(nodeTimeout);
resolve(value);
}, reject);
});
}
exports.executePromiseWithTimeout = executePromiseWithTimeout;