UNPKG

@dasch-swiss/dsp-js

Version:
30 lines 1.11 kB
import { retry, timer } from 'rxjs'; /** * * Retries failed HTTP requests. * * @param delayMs delay in milliseconds before the request is retried. * @param maxRetries maximum number of retries. * @param retryOnErrorStatus HTTP error status codes for which the request is retried. * @param logError if true, error is written to the console error log. * * @category Internal */ export function retryOnError(delayMs, maxRetries, retryOnErrorStatus, logError) { const retries = maxRetries; // inspired by https://medium.com/angular-in-depth/retry-failed-http-requests-in-angular-f5959d486294 return (src) => src.pipe(retry({ count: maxRetries, delay: (error, retryCount) => { if (retryOnErrorStatus.indexOf(error.status) !== -1) { if (logError) console.error('HTTP request failed:', 'status:', error.status, 'retries:', retryCount, 'error:', error); return timer(delayMs); } else { throw error; } }, })); } //# sourceMappingURL=retryOnError.js.map