btrz-circuit-breaker

Wrapper around circuit-breaker-js to return native Promises.

Bump a new version

npm version patch

Engines

io.js >= v2.0.1

Wrapping a function that returns a Promise

let configuration = { ... };
let breaker = new CircuitBreaker(configuration);
let fallback = function () { }; //might return a value or Promise
let wrappedFn = breaker.wrapPromiseFunction(someAsyncFunction, fallback);

let promise = wrappedFn(arg1, arg2 ...);

promise.then ...

Using the already wrapped HTTP transport

// httpTransport should have a simple api(method, url, options)
// request is a good example
let wrappedTransport = breaker.wrapHttpTransport(httpTransport);
let promise = wrappedTransport("post", "http://test", {postData: {data: 1}});

Wrapping a request-like HTTP library

let configuration = { ... };
let breaker = new CircuitBreaker(configuration);
let fallback = function () { }; //might return a value or Promise
let httpTransport = require("request");
let wrappedTransport = breaker.wrapPromiseFunction(httpTransport, fallback);

let promise = wrappedTransport("GET", "http://test.com");
// let promise = wrappedTransport("POST", "http://test.com", {postData: {data: 123}});
// let promise = wrappedTransport(, , );

promise.then ...