(options, retriesRemaining, responseHeaders)
| 69820 | if (response.status === 409) |
| 69821 | return true; |
| 69822 | if (response.status === 429) |
| 69823 | return true; |
| 69824 | if (response.status >= 500) |
| 69825 | return true; |
| 69826 | return false; |
| 69827 | } |
| 69828 | async retryRequest(options, retriesRemaining, responseHeaders) { |
| 69829 | let timeoutMillis; |
| 69830 | const retryAfterMillisHeader = responseHeaders?.["retry-after-ms"]; |
| 69831 | if (retryAfterMillisHeader) { |
| 69832 | const timeoutMs = parseFloat(retryAfterMillisHeader); |
| 69833 | if (!Number.isNaN(timeoutMs)) { |
| 69834 | timeoutMillis = timeoutMs; |
| 69835 | } |
| 69836 | } |
| 69837 | const retryAfterHeader = responseHeaders?.["retry-after"]; |
| 69838 | if (retryAfterHeader && !timeoutMillis) { |
| 69839 | const timeoutSeconds = parseFloat(retryAfterHeader); |
| 69840 | if (!Number.isNaN(timeoutSeconds)) { |
| 69841 | timeoutMillis = timeoutSeconds * 1e3; |
| 69842 | } else { |
| 69843 | timeoutMillis = Date.parse(retryAfterHeader) - Date.now(); |
| 69844 | } |
| 69845 | } |
| 69846 | if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1e3)) { |
| 69847 | const maxRetries = options.maxRetries ?? this.maxRetries; |
| 69848 | timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries); |
| 69849 | } |
no test coverage detected