UNPKG

@dasch-swiss/dsp-js

Version:

JavaScript library that handles API requests to Knora

32 lines 1.19 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) { var retries = maxRetries; // inspired by https://medium.com/angular-in-depth/retry-failed-http-requests-in-angular-f5959d486294 return function (src) { return src.pipe(retry({ count: maxRetries, delay: function (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