corde
Version:
A simple library for Discord bot tests
45 lines (35 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.hookBuilder = void 0;
const tslib_1 = require("tslib");
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
const runtime_1 = require("../common/runtime");
const utils_1 = require("../utils");
function hookBuilder(params) {
const { queueToAdd, fn, trace, errorTitle, timeout } = params;
queueToAdd.enqueue(async () => {
try {
await (0, utils_1.executePromiseWithTimeout)(async (resolve, reject) => {
try {
await fn();
resolve();
} catch (error) {
reject(error);
}
}, timeout ?? runtime_1.runtime.timeout);
} catch (error) {
let newError;
const errorLabel = chalk_1.default.bgRed(`● ${errorTitle}`);
if (error instanceof Error && error.message) {
newError = new Error(`${errorLabel}: ${error.message}`);
} else {
newError = new Error(`${errorLabel}: ${(0, utils_1.formatObject)(error)}`);
}
newError.stack = trace;
throw newError;
}
});
}
exports.hookBuilder = hookBuilder;