UNPKG

607 BJavaScriptView Raw
1var ERROR_CODES = [
2 'ECONNRESET',
3 'ETIMEDOUT',
4 'EADDRINFO',
5 'ESOCKETTIMEDOUT'
6];
7
8/**
9 * Determine if a request should be retried.
10 * (Borrowed from segmentio/superagent-retry)
11 *
12 * @param {Error} err
13 * @param {Response} [res]
14 * @returns {Boolean}
15 */
16module.exports = function shouldRetry(err, res) {
17 if (err && err.code && ~ERROR_CODES.indexOf(err.code)) return true;
18 if (res && res.status && res.status >= 500) return true;
19 // Superagent timeout
20 if (err && 'timeout' in err && err.code == 'ECONNABORTED') return true;
21 if (err && 'crossDomain' in err) return true;
22 return false;
23};