
Security News
rv Is a New Rust-Powered Ruby Version Manager Inspired by Python's uv
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
promise-fn-retry
Advanced tools
Abstraction for exponential and custom retry strategies to failed promises.
Retrying made simple and easy. \o/
Using yarn:
yarn add promise-fn-retry
Using npm:
npm i --save promise-fn-retry
Simple Request
import fetch from 'node-fetch';
import retry from 'promise-fn-retry';
const requestUser = () => {
// Create a function that return a promise
const promiseFn = () => fetch('https://api.github.com/users/14');
// call retry passing promiseFn argument. Thats it!
return retry(promiseFn)
.then(res => res.json());
};
export default requestUser;
Using options param
import fetch from 'node-fetch';
import retry from 'promise-fn-retry';
const requestUser = () => {
// Create a function that return a promise
const promiseFn = () => fetch('https://api.github.com/users/14');
// You can use options to your retry rules strategy.
const options = {
times: 3,
initialDelay: 100,
};
// call retry passing promiseFn argument. Thats it!
return retry(promiseFn, options)
.then(res => res.json());
};
export default requestUser;
retry(promiseFn : Function, [options : Object]) => Promise
These are the available config options for retrying. Only promiseFn is required. If an object isn't provided, the lib will use the default options.
{
// The number of times the lib will retry execute the promiseFn
// Default: 1
times: 3,
// The first wait time to delay
// Default: 100
initialDelayTime: 200,
// (Optional) This callback is executed on each retry. It's useful to log your errors to a log service for example
// Default: null
onRetry: (error) => {
console.log(error);
sendToSentry(error);
sendToKibana(error);
},
// (Optional) This callback is executed before each retry to determine if it's necessary retrying.
// If the function returns true, the next retry will be executed, else the retrying will be canceled.
// Default: null
shouldRetry: (error) => {
console.log(error);
return (error.message === 'FAILED_AUTH');
}
}
Each retry doubles the current delay.
initialDelayTime
option, like 100ms
.200ms
(100 * 2).400ms
...Licensed under the MIT License, Copyright © 2018-present Felippe Maurício.
FAQs
A simple retry to be used in integrations with NodeJS
The npm package promise-fn-retry receives a total of 3,334 weekly downloads. As such, promise-fn-retry popularity was classified as popular.
We found that promise-fn-retry demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.