wontbreak
v1.0.9
Published
Allows you to have resilient http calls.
Downloads
11
Maintainers
Readme
About
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.
Install Package
npm install wontbreak
Usage
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({
timeoutInSeconds: 0.2,
});
[!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.
Contributing
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.
License
wontbreak is a free and open-source software licensed under the MIT License.
See LICENSE for more details.