UNPKG

@snap/camera-kit

Version:
43 lines 1.49 kB
import { __awaiter } from "tslib"; import { getLogger } from "../logger/logger"; const logger = getLogger("persistingHandler"); export const createPersistingHandler = (persistence) => { let needsRecovery = true; const maybePerformRecovery = (next) => __awaiter(void 0, void 0, void 0, function* () { if (!needsRecovery) return; needsRecovery = false; try { const requests = yield persistence.removeAll(); if (requests.length === 0) return; requests.forEach(([request, metadata]) => performRequest(next)(request, metadata).catch((error) => { logger.error(error); })); } catch (error) { logger.error(error); } }); const performRequest = (next) => (req, metadata) => __awaiter(void 0, void 0, void 0, function* () { maybePerformRecovery(next); const keyPromise = persistence.store([req, metadata]).catch((error) => { logger.error(error); return null; }); try { return yield next(req, metadata); } finally { keyPromise .then((key) => { if (key !== null) return persistence.remove(key); return; }) .catch((error) => logger.error(error)); } }); return performRequest; }; //# sourceMappingURL=persistingHandler.js.map