source: frontend/node_modules/p-retry/index.d.ts

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 3.3 KB
Line 
1import {OperationOptions} from 'retry';
2
3declare class AbortErrorClass extends Error {
4 readonly name: 'AbortError';
5 readonly originalError: Error;
6
7 /**
8 Abort retrying and reject the promise.
9
10 @param message - Error message or custom error.
11 */
12 constructor(message: string | Error);
13}
14
15declare namespace pRetry {
16 interface FailedAttemptError extends Error {
17 readonly attemptNumber: number;
18 readonly retriesLeft: number;
19 }
20
21 interface Options extends OperationOptions {
22 /**
23 Callback invoked on each retry. Receives the error thrown by `input` as the first argument with properties `attemptNumber` and `retriesLeft` which indicate the current attempt number and the number of attempts left, respectively.
24
25 The `onFailedAttempt` function can return a promise. For example, to add a [delay](https://github.com/sindresorhus/delay):
26
27 ```
28 import pRetry = require('p-retry');
29 import delay = require('delay');
30
31 const run = async () => { ... };
32
33 (async () => {
34 const result = await pRetry(run, {
35 onFailedAttempt: async error => {
36 console.log('Waiting for 1 second before retrying');
37 await delay(1000);
38 }
39 });
40 })();
41 ```
42
43 If the `onFailedAttempt` function throws, all retries will be aborted and the original promise will reject with the thrown error.
44 */
45 readonly onFailedAttempt?: (error: FailedAttemptError) => void | Promise<void>;
46 }
47
48 type AbortError = AbortErrorClass;
49}
50
51declare const pRetry: {
52 /**
53 Returns a `Promise` that is fulfilled when calling `input` returns a fulfilled promise. If calling `input` returns a rejected promise, `input` is called again until the max retries are reached, it then rejects with the last rejection reason.
54
55 Does not retry on most `TypeErrors`, with the exception of network errors. This is done on a best case basis as different browsers have different [messages](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#Checking_that_the_fetch_was_successful) to indicate this.
56 See [whatwg/fetch#526 (comment)](https://github.com/whatwg/fetch/issues/526#issuecomment-554604080)
57
58 @param input - Receives the number of attempts as the first argument and is expected to return a `Promise` or any value.
59 @param options - Options are passed to the [`retry`](https://github.com/tim-kos/node-retry#retryoperationoptions) module.
60
61 @example
62 ```
63 import pRetry = require('p-retry');
64 import fetch from 'node-fetch';
65
66 const run = async () => {
67 const response = await fetch('https://sindresorhus.com/unicorn');
68
69 // Abort retrying if the resource doesn't exist
70 if (response.status === 404) {
71 throw new pRetry.AbortError(response.statusText);
72 }
73
74 return response.blob();
75 };
76
77 (async () => {
78 console.log(await pRetry(run, {retries: 5}));
79
80 // With the `onFailedAttempt` option:
81 const result = await pRetry(run, {
82 onFailedAttempt: error => {
83 console.log(`Attempt ${error.attemptNumber} failed. There are ${error.retriesLeft} retries left.`);
84 // 1st request => Attempt 1 failed. There are 4 retries left.
85 // 2nd request => Attempt 2 failed. There are 3 retries left.
86 // …
87 },
88 retries: 5
89 });
90
91 console.log(result);
92 })();
93 ```
94 */
95 <T>(
96 input: (attemptCount: number) => PromiseLike<T> | T,
97 options?: pRetry.Options
98 ): Promise<T>;
99
100 AbortError: typeof AbortErrorClass;
101
102 // TODO: remove this in the next major version
103 default: typeof pRetry;
104};
105
106export = pRetry;
Note: See TracBrowser for help on using the repository browser.