1 |
|
2 | import Bottleneck from "bottleneck/light";
|
3 |
|
4 | export async function wrapRequest(state, request, options) {
|
5 | const limiter = new Bottleneck();
|
6 |
|
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 |
|
13 |
|
14 | return after * state.retryAfterBaseValue;
|
15 | }
|
16 | });
|
17 | return limiter.schedule(request, options);
|
18 | }
|