@snap/camera-kit
Version:
Camera Kit Web
23 lines • 984 B
JavaScript
import { Injectable } from "@snap/ts-inject";
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