UNPKG

717 BJavaScriptView Raw
1// @ts-ignore
2import Bottleneck from "bottleneck/light";
3// @ts-ignore
4export async function wrapRequest(state, request, options) {
5 const limiter = new Bottleneck();
6 // @ts-ignore
7 limiter.on("failed", function (error, info) {
8 const maxRetries = ~~error.request.request.retries;
9 const after = ~~error.request.request.retryAfter;
10 options.request.retryCount = info.retryCount + 1;
11 if (maxRetries > info.retryCount) {
12 // Returning a number instructs the limiter to retry
13 // the request after that number of milliseconds have passed
14 return after * state.retryAfterBaseValue;
15 }
16 });
17 return limiter.schedule(request, options);
18}