mirror of
https://github.com/knex/knex.git
synced 2025-07-06 00:20:15 +00:00
21 lines
464 B
JavaScript
21 lines
464 B
JavaScript
![]() |
const Bluebird = require('bluebird');
|
||
|
const delay = require('./delay');
|
||
|
|
||
|
class KnexTimeoutError extends Error {
|
||
|
constructor(message) {
|
||
|
super(message);
|
||
|
this.name = 'KnexTimeoutError';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports.KnexTimeoutError = KnexTimeoutError;
|
||
|
module.exports.timeout = (promise, ms) =>
|
||
|
Bluebird.resolve(
|
||
|
Promise.race([
|
||
|
promise,
|
||
|
delay(ms).then(() =>
|
||
|
Promise.reject(new KnexTimeoutError('operation timed out'))
|
||
|
),
|
||
|
])
|
||
|
);
|