var ERROR_CODES = [ 'ECONNRESET', 'ETIMEDOUT', 'EADDRINFO', 'ESOCKETTIMEDOUT' ]; /** * Determine if a request should be retried. * (Borrowed from segmentio/superagent-retry) * * @param {Error} err * @param {Response} [res] * @returns {Boolean} */ module.exports = function shouldRetry(err, res) { if (err && err.code && ~ERROR_CODES.indexOf(err.code)) return true; if (res && res.status && res.status >= 500) return true; // Superagent timeout if (err && 'timeout' in err && err.code == 'ECONNABORTED') return true; return false; };