@luminati-io/knex
Version:
A batteries-included SQL query & schema builder for PostgresSQL, MySQL, CockroachDB, MSSQL and SQLite3
30 lines (24 loc) • 639 B
JavaScript
class KnexTimeoutError extends Error {
constructor(message) {
super(message);
this.name = 'KnexTimeoutError';
}
}
function timeout(promise, ms) {
return new Promise(function (resolve, reject) {
const id = setTimeout(function () {
reject(new KnexTimeoutError('operation timed out'));
}, ms);
function wrappedResolve(value) {
clearTimeout(id);
resolve(value);
}
function wrappedReject(err) {
clearTimeout(id);
reject(err);
}
promise.then(wrappedResolve, wrappedReject);
});
}
module.exports.KnexTimeoutError = KnexTimeoutError;
module.exports.timeout = timeout;