Convenient utilities to retry executing some operation until success or failure at most 3 times.
-
npmnpm i -S @lazycuh/retry -
pnpmpnpm i -S @lazycuh/retry -
yarnyarn 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.