Convenient utilities to retry executing some operation until success or failure at most 3 times.
-
npm
npm i -S @lazycuh/retry
-
pnpm
pnpm i -S @lazycuh/retry
-
yarn
yarn add @lazycuh/retry
To imperatively retry some operation, wrap your function/method call inside retry
as followed:
import { retry } from '@lazycuh/retry';
...
const allUsers = await retry(() => fetchAllUsers(), 1000); // Wait 1000ms between retries, default is 3000ms
...
Alternatively, you can decorate your methods using @Retryable
decorator to add retrying logic to them, be sure that your tsconfig.json
file has experimentalDecorators
setting enabled, for example:
{
"compilerOptions": {
...
"experimentalDecorators": true,
...
},
}
import { Retryable } from '@lazycuh/retry';
...
class UserService {
@Retryable(2000) // Wait 2000ms between retries, default is 3000ms
fetchUsers() {
...
}
}
...
When userService.fetchUsers()
is called, any failures will cause it to rerun until either succeeding or failing at most 3 times after the initial failure.