Skip to content
/ retry Public

Convenient utilities to retry executing some operation until success or failure at most 3 times

License

Notifications You must be signed in to change notification settings

lazycuh/retry

Repository files navigation

retry

Convenient utilities to retry executing some operation until success or failure at most 3 times.

Table of contents

Installation

  • npm

    npm i -S @lazycuh/retry
    
  • pnpm

    pnpm i -S @lazycuh/retry
    
  • yarn

    yarn add @lazycuh/retry
    

Available APIs

retry function

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

...

@Retryable decorator

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.

About

Convenient utilities to retry executing some operation until success or failure at most 3 times

Topics

Resources

License

Stars

Watchers

Forks