UNPKG

@snap/camera-kit

Version:
21 lines 1.02 kB
import { __awaiter } from "tslib"; import { createMappingHandler } from "./mappingHandler"; const delay = (duration) => new Promise((resolve) => setTimeout(resolve, duration)); export const createRateLimitingHandler = (duration, pageVisibility) => { let mostRecentSendTime = undefined; const mappingHandler = createMappingHandler((request) => __awaiter(void 0, void 0, void 0, function* () { if (mostRecentSendTime !== undefined) { const millisUntilNextSend = duration - (Date.now() - mostRecentSendTime); if (millisUntilNextSend > 0) yield delay(millisUntilNextSend); } mostRecentSendTime = Date.now(); return request; }), pageVisibility, 1); return (next) => (request, metadata) => { if (pageVisibility && pageVisibility.isDuringVisibilityTransition("hidden")) return next(request, metadata); return mappingHandler(next)(request, metadata); }; }; //# sourceMappingURL=rateLimitingHandler.js.map