Skip to content

Nebula-Software-Systems/wontbreak

Repository files navigation

wontbreak

Make your axios requests more resilient.

Coverage Status

NPM Downloads

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.