Make your axios requests more resilient.
wontbreak is an Open-Source library that allows you to make your axios requests more resilient. We provide an implementation for 3 common resiliency algorithms: timeout, retry, and circuit-breaker.
npm install wontbreak
The way of using each strategy is pretty much the same.
The first step is always to choose a specific strategy. In this case let's go with timeout.
import { PolicyExecutorFactory } from "wontbreak";
const timeoutPolicyExecutor =
PolicyExecutorFactory.createTimeoutHttpExecutor({
timeoutInMilli: 300,
});
Note
For each strategy we must provide a configuration object to specify the constraints of the strategy. More on that on each strategies documentation.
The second step is to execute the http request. We do so by calling the ExecutePolicyAsync method.
const httpResult =
await timeoutPolicyExecutor.ExecutePolicyAsync<ComplexObject>(
axios.get("http://nicedocs.com/api/comments")
);
The ExecutePolicyAsync is generic and must be passed on a type, which refers to the expected result from the API endpoint, as well as the axios operation.
Note
There is no need to use await with the axios operation, as seen in the example above.
For more information on how to properly operate each strategy, please click on the following links: timeout, retry and circuit-breaker.
For more information on the result type of the ExecutePolicyAsync method, please refer to this documentation.
This project welcomes and appreciates any contributions made.
There are several ways you can contribute, namely:
- Report any bug found.
- Suggest some features or improvements.
- Creating pull requests.
wontbreak is a free and open-source software licensed under the MIT License.
See LICENSE for more details.