@snap/camera-kit
Version:
Camera Kit Web
23 lines • 1 kB
JavaScript
import { Injectable } from "../dependency-injection/Injectable";
import { HandlerChainBuilder } from "./HandlerChainBuilder";
import { createNoCorsRetryingFetchHandler } from "./noCorsRetryingFetchHandler";
import { createRetryingHandler } from "./retryingHandler";
import { createTimeoutHandler } from "./timeoutHandler";
export const defaultFetchHandlerFactory = Injectable("defaultFetchHandler", () => {
return (new HandlerChainBuilder(fetch)
.map(createTimeoutHandler({ timeout: 20 * 1000 }))
.map(createNoCorsRetryingFetchHandler())
.map(createRetryingHandler({
maxRetries: 3,
retryPredicate: (responseOrError) => {
if (responseOrError instanceof Response) {
if (responseOrError.ok)
return false;
if (responseOrError.status % 400 < 100)
return false;
}
return true;
},
})).handler);
});
//# sourceMappingURL=defaultFetchHandler.js.map