UNPKG

@clickup/rest-client

Version:

A syntax sugar tool around Node fetch() API, tailored to work with TypeScript and response validators

37 lines 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const MIN_LOG_DELAY_MS = 10; /** * Rest Client middleware that adds some delay between requests using one of * Pacer implementations. */ function paceRequests(pacer, delayMetric) { return async (req, next) => { if (typeof pacer === "function") { pacer = await pacer(req); } if (pacer) { const { delayMs, reason } = await pacer.pace(); if (delayMs > 0) { delayMetric === null || delayMetric === void 0 ? void 0 : delayMetric(delayMs, reason); await req.options.heartbeater.delay(delayMs); } if (delayMs > MIN_LOG_DELAY_MS) { req.options.logger({ attempt: 0, req, res: "backoff_delay", exception: null, timestamp: Date.now(), elapsed: delayMs, isFinalAttempt: true, privateDataInResponse: false, comment: reason, }); } } return next(req); }; } exports.default = paceRequests; //# sourceMappingURL=paceRequests.js.map