UNPKG

873 BJavaScriptView Raw
1/**
2 * Common retry conditions
3 */
4
5module.exports = [
6 econnreset,
7 etimedout,
8 eaddrinfo,
9 esockettimedout,
10 gateway,
11 timeout
12];
13
14
15/**
16 * Connection reset detection
17 */
18
19function econnreset (err, res) {
20 return err && err.code === 'ECONNRESET';
21}
22
23
24/**
25 * Timeout detection
26 */
27
28function etimedout (err, res) {
29 return err && err.code === 'ETIMEDOUT';
30}
31
32
33/**
34 * Can't get address info
35 */
36
37function eaddrinfo (err, res) {
38 return err && err.code === 'EADDRINFO';
39}
40
41
42/**
43 * Socket timeout detection
44 */
45
46function esockettimedout (err, res) {
47 return err && err.code === 'ESOCKETTIMEDOUT';
48}
49
50
51/**
52 * Bad gateway error detection
53 */
54
55function gateway (err, res) {
56 return res && [502,503,504].indexOf(res.status) !== -1;
57}
58
59
60/**
61 * Superagent timeout errors
62 */
63
64function timeout (err, res) {
65 return err && /^timeout of \d+ms exceeded$/.test(err.message);
66}
\No newline at end of file