1.0.0 • Published 6 months ago

@babybeet/retry v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

retry npm.io

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

Table of contents

Installation

  • npm

    npm i -S @babybeet/retry
  • pnpm

    pnpm i -S @babybeet/retry
  • yarn

    yarn add @babybeet/retry

Available APIs

retry function

To imperatively retry some operation, wrap your function/method call inside retry as followed:

import { retry } from '@babybeet/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 '@babybeet/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.

1.0.0

6 months ago