UNPKG

@snap/camera-kit

Version:
33 lines 1.45 kB
import { __awaiter } from "tslib"; import { getLogger } from "../logger/logger"; import { ensureClonedRequest } from "./retryingHandler"; const logger = getLogger("noCorsRetryingFetchHandler"); const logRetry = (error) => { logger.warn(`NoCorsRetrying handler got failed response:`, error, `Retrying request with {mode: "no-cors"}.`); }; export const createNoCorsRetryingFetchHandler = () => { const noCorsRequests = new Map(); return (next) => (input, init = {}) => __awaiter(void 0, void 0, void 0, function* () { var _a; let requestKey = typeof input === "string" ? input : input.url; try { requestKey = new URL(requestKey, location.origin).host; } catch (_) { } try { return yield next(ensureClonedRequest(input), init); } catch (error) { if (error instanceof Error && error.name === "AbortError") throw error; logRetry(error); const noCorsRequest = (_a = noCorsRequests.get(requestKey)) !== null && _a !== void 0 ? _a : next(ensureClonedRequest(input), Object.assign(Object.assign({}, init), { mode: "no-cors" })); noCorsRequests.set(requestKey, noCorsRequest); yield noCorsRequest; noCorsRequests.delete(requestKey); return next(ensureClonedRequest(input), init); } }); }; //# sourceMappingURL=noCorsRetryingFetchHandler.js.map