knex/lib/util/timeout.js

18 lines
390 B
JavaScript
Raw Normal View History

2020-02-12 23:42:15 +03:00
const delay = require('./delay');
class KnexTimeoutError extends Error {
constructor(message) {
super(message);
this.name = 'KnexTimeoutError';
}
}
module.exports.KnexTimeoutError = KnexTimeoutError;
module.exports.timeout = (promise, ms) =>
Promise.race([
promise,
delay(ms).then(() =>
Promise.reject(new KnexTimeoutError('operation timed out'))
),
]);