diff --git a/CHANGELOG.md b/CHANGELOG.md index bed50147..9cec4dc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [3.0.0](https://github.com/nodeshift/opossum/compare/v2.3.0...v3.0.0) (2019-07-26) + + +### src + +* Remove the Promisify function ([#354](https://github.com/nodeshift/opossum/issues/354)) ([86a6154](https://github.com/nodeshift/opossum/commit/86a6154)), closes [#352](https://github.com/nodeshift/opossum/issues/352) + + +### BREAKING CHANGES + +* Remove the Promisify function from the CircuitBreaker factory + +* Node has its own built-in promisify function that can be used instead. + + + ## [2.3.0](https://github.com/nodeshift/opossum/compare/v2.2.0...v2.3.0) (2019-07-01) diff --git a/docs/index.html b/docs/index.html index 7ec338d1..5be1c664 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,7 +2,7 @@
-2.3.0
3.0.0
The opossum
API returns a Promise
from CircuitBreaker.fire()
.
But your circuit action - the async function that might fail -
doesn't have to return a promise. You can easily turn Node.js style
-callback functions into something opossum
understands by using
-circuitBreaker.promisify()
.
opossum
understands by using the built in
+Node core utility function util.promisify()
.
const fs = require('fs');
+const { promisify } = require('util');
const circuitBreaker = require('opossum');
-const readFile = circuitBreaker.promisify(fs.readFile);
+const readFile = promisify(fs.readFile);
const breaker = circuitBreaker(readFile, options);
breaker.fire('./package.json', 'utf-8')
@@ -998,79 +989,6 @@
-
-
-
-
-
-
-
-
-
-
-
- factory.promisify
-
-
-
-
-
-
- Given a function that receives a callback as its last argument,
-and which executes that function, passing as parameters err
and result
,
-creates an action that returns a promise which resolves when the function's
-callback is executed.
-
- factory.promisify(action: Function)
-
-
-
-
-
-
-
-
-
-
-
- Parameters
-
-
-
-
- action (Function)
- A Node.js-like asynchronous function
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Example
-
-
- const fs = require('fs');
- const readFilePromised = circuitBreaker.promisify(fs.readFile);
- const breaker = circuitBreaker(readFilePromised);
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/opossum.md b/docs/opossum.md
index 69e96f6f..2baa50db 100644
--- a/docs/opossum.md
+++ b/docs/opossum.md
@@ -4,145 +4,123 @@
- [factory][1]
- [Parameters][2]
-- [factory.promisify][3]
- - [Parameters][4]
- - [Examples][5]
-- [factory.metrics][6]
-- [factory.circuits][7]
-- [CircuitBreaker][8]
- - [Parameters][9]
- - [close][10]
- - [open][11]
- - [shutdown][12]
- - [isShutdown][13]
- - [name][14]
- - [group][15]
- - [pendingClose][16]
- - [closed][17]
- - [opened][18]
- - [halfOpen][19]
- - [status][20]
- - [stats][21]
- - [hystrixStats][22]
- - [metrics][23]
- - [enabled][24]
- - [warmUp][25]
- - [volumeThreshold][26]
- - [fallback][27]
- - [Parameters][28]
- - [fire][29]
- - [clearCache][30]
- - [healthCheck][31]
- - [Parameters][32]
- - [enable][33]
- - [disable][34]
- - [circuits][35]
-- [CircuitBreaker#halfOpen][36]
-- [CircuitBreaker#close][37]
-- [CircuitBreaker#open][38]
-- [CircuitBreaker#fire][39]
-- [CircuitBreaker#cacheHit][40]
-- [CircuitBreaker#cacheMiss][41]
-- [CircuitBreaker#reject][42]
-- [CircuitBreaker#timeout][43]
-- [CircuitBreaker#success][44]
-- [CircuitBreaker#semaphoreLocked][45]
-- [CircuitBreaker#healthCheckFailed][46]
-- [CircuitBreaker#fallback][47]
-- [CircuitBreaker#failure][48]
-- [Status][49]
- - [Parameters][50]
- - [Examples][51]
- - [stats][52]
- - [window][53]
-- [Status#snapshot][54]
-- [HystrixStats][55]
- - [Parameters][56]
- - [Examples][57]
- - [getHystrixStream][58]
- - [shutdown][59]
+- [factory.metrics][3]
+- [factory.circuits][4]
+- [CircuitBreaker][5]
+ - [Parameters][6]
+ - [close][7]
+ - [open][8]
+ - [shutdown][9]
+ - [isShutdown][10]
+ - [name][11]
+ - [group][12]
+ - [pendingClose][13]
+ - [closed][14]
+ - [opened][15]
+ - [halfOpen][16]
+ - [status][17]
+ - [stats][18]
+ - [hystrixStats][19]
+ - [metrics][20]
+ - [enabled][21]
+ - [warmUp][22]
+ - [volumeThreshold][23]
+ - [fallback][24]
+ - [Parameters][25]
+ - [fire][26]
+ - [clearCache][27]
+ - [healthCheck][28]
+ - [Parameters][29]
+ - [enable][30]
+ - [disable][31]
+ - [circuits][32]
+- [CircuitBreaker#halfOpen][33]
+- [CircuitBreaker#close][34]
+- [CircuitBreaker#open][35]
+- [CircuitBreaker#fire][36]
+- [CircuitBreaker#cacheHit][37]
+- [CircuitBreaker#cacheMiss][38]
+- [CircuitBreaker#reject][39]
+- [CircuitBreaker#timeout][40]
+- [CircuitBreaker#success][41]
+- [CircuitBreaker#semaphoreLocked][42]
+- [CircuitBreaker#healthCheckFailed][43]
+- [CircuitBreaker#fallback][44]
+- [CircuitBreaker#failure][45]
+- [Status][46]
+ - [Parameters][47]
+ - [Examples][48]
+ - [stats][49]
+ - [window][50]
+- [Status#snapshot][51]
+- [HystrixStats][52]
+ - [Parameters][53]
+ - [Examples][54]
+ - [getHystrixStream][55]
+ - [shutdown][56]
## factory
-Creates a [CircuitBreaker][8] instance capable of executing `action`.
+Creates a [CircuitBreaker][5] instance capable of executing `action`.
### Parameters
-- `action` **[Function][60]** The action to fire for this [CircuitBreaker][8]
-- `options` **[Object][61]** Options for the [CircuitBreaker][8]
- - `options.timeout` **[Number][62]** The time in milliseconds that action should
+- `action` **[Function][57]** The action to fire for this [CircuitBreaker][5]
+- `options` **[Object][58]** Options for the [CircuitBreaker][5]
+ - `options.timeout` **[Number][59]** The time in milliseconds that action should
be allowed to execute before timing out. Default 10000 (10 seconds)
- - `options.maxFailures` **[Number][62]** (Deprecated) The number of times the
+ - `options.maxFailures` **[Number][59]** (Deprecated) The number of times the
circuit can fail before opening. Default 10.
- - `options.resetTimeout` **[Number][62]** The time in milliseconds to wait before
+ - `options.resetTimeout` **[Number][59]** The time in milliseconds to wait before
setting the breaker to `halfOpen` state, and trying the action again.
Default: 30000 (30 seconds)
- - `options.rollingCountTimeout` **[Number][62]** Sets the duration of the
+ - `options.rollingCountTimeout` **[Number][59]** Sets the duration of the
statistical rolling window, in milliseconds. This is how long Opossum keeps
metrics for the circuit breaker to use and for publishing. Default: 10000
- - `options.rollingCountBuckets` **[Number][62]** Sets the number of buckets the
+ - `options.rollingCountBuckets` **[Number][59]** Sets the number of buckets the
rolling statistical window is divided into. So, if
options.rollingCountTimeout is 10000, and options.rollingCountBuckets is 10,
then the statistical window will be 1000 1 second snapshots in the
statistical window. Default: 10
- - `options.name` **[String][63]** the circuit name to use when reporting stats.
+ - `options.name` **[String][60]** the circuit name to use when reporting stats.
Default: the name of the function this circuit controls.
- - `options.rollingPercentilesEnabled` **[boolean][64]** This property indicates
+ - `options.rollingPercentilesEnabled` **[boolean][61]** This property indicates
whether execution latencies should be tracked and calculated as percentiles.
If they are disabled, all summary statistics (mean, percentiles) are
returned as -1. Default: false
- - `options.capacity` **[Number][62]** the number of concurrent requests allowed.
+ - `options.capacity` **[Number][59]** the number of concurrent requests allowed.
If the number currently executing function calls is equal to
options.capacity, further calls to `fire()` are rejected until at least one
of the current requests completes. Default: `Number.MAX_SAFE_INTEGER`.
- - `options.errorThresholdPercentage` **[Number][62]** the error percentage at
+ - `options.errorThresholdPercentage` **[Number][59]** the error percentage at
which to open the circuit and start short-circuiting requests to fallback.
Default: 50
- - `options.enabled` **[boolean][64]** whether this circuit is enabled upon
+ - `options.enabled` **[boolean][61]** whether this circuit is enabled upon
construction. Default: true
- - `options.allowWarmUp` **[boolean][64]** determines whether to allow failures
+ - `options.allowWarmUp` **[boolean][61]** determines whether to allow failures
without opening the circuit during a brief warmup period (this is the
`rollingCountDuration` property). Default: false
allow before enabling the circuit. This can help in situations where no
matter what your `errorThresholdPercentage` is, if the first execution
times out or fails, the circuit immediately opens. Default: 0
- - `options.volumeThreshold` **[Number][62]** the minimum number of requests within
+ - `options.volumeThreshold` **[Number][59]** the minimum number of requests within
the rolling statistical window that must exist before the circuit breaker
can open. This is similar to `options.allowWarmUp` in that no matter how many
failures there are, if the number of requests within the statistical window
does not exceed this threshold, the circuit will remain closed. Default: 0
- - `options.errorFilter` **[Function][60]** an optional function that will be
+ - `options.errorFilter` **[Function][57]** an optional function that will be
called when the circuit's function fails (returns a rejected Promise). If
this function returns truthy, the circuit's failure statistics will not be
incremented. This is useful, for example, when you don't want HTTP 404 to
trip the circuit, but still want to handle it as a failure case.
-Returns **[CircuitBreaker][65]** a newly created [CircuitBreaker][8] instance
-
-## factory.promisify
-
-Given a function that receives a callback as its last argument,
-and which executes that function, passing as parameters `err` and `result`,
-creates an action that returns a promise which resolves when the function's
-callback is executed.
-
-### Parameters
-
-- `action` **[Function][60]** A Node.js-like asynchronous function
-
-### Examples
-
-```javascript
-const fs = require('fs');
- const readFilePromised = circuitBreaker.promisify(fs.readFile);
- const breaker = circuitBreaker(readFilePromised);
-```
+Returns **[CircuitBreaker][62]** a newly created [CircuitBreaker][5] instance
## factory.metrics
Get the Prometheus metrics for all circuits.
-Returns **[String][63]** the metrics for all circuits or
+Returns **[String][60]** the metrics for all circuits or
undefined if no circuits have been created
## factory.circuits
@@ -156,54 +134,54 @@ Returns **Iterator** an Iterator
of all available circuits
**Extends EventEmitter**
-Constructs a [CircuitBreaker][8].
+Constructs a [CircuitBreaker][5].
### Parameters
-- `action` **[Function][60]** The action to fire for this [CircuitBreaker][8]
-- `options` **[Object][61]** Options for the [CircuitBreaker][8]
- - `options.timeout` **[Number][62]** The time in milliseconds that action should
+- `action` **[Function][57]** The action to fire for this [CircuitBreaker][5]
+- `options` **[Object][58]** Options for the [CircuitBreaker][5]
+ - `options.timeout` **[Number][59]** The time in milliseconds that action should
be allowed to execute before timing out. Default 10000 (10 seconds)
- - `options.maxFailures` **[Number][62]** (Deprecated) The number of times the
+ - `options.maxFailures` **[Number][59]** (Deprecated) The number of times the
circuit can fail before opening. Default 10.
- - `options.resetTimeout` **[Number][62]** The time in milliseconds to wait before
+ - `options.resetTimeout` **[Number][59]** The time in milliseconds to wait before
setting the breaker to `halfOpen` state, and trying the action again.
Default: 30000 (30 seconds)
- - `options.rollingCountTimeout` **[Number][62]** Sets the duration of the
+ - `options.rollingCountTimeout` **[Number][59]** Sets the duration of the
statistical rolling window, in milliseconds. This is how long Opossum keeps
metrics for the circuit breaker to use and for publishing. Default: 10000
- - `options.rollingCountBuckets` **[Number][62]** Sets the number of buckets the
+ - `options.rollingCountBuckets` **[Number][59]** Sets the number of buckets the
rolling statistical window is divided into. So, if
options.rollingCountTimeout is 10000, and options.rollingCountBuckets is 10,
then the statistical window will be 1000 1 second snapshots in the
statistical window. Default: 10
- - `options.name` **[String][63]** the circuit name to use when reporting stats.
+ - `options.name` **[String][60]** the circuit name to use when reporting stats.
Default: the name of the function this circuit controls.
- - `options.rollingPercentilesEnabled` **[boolean][64]** This property indicates
+ - `options.rollingPercentilesEnabled` **[boolean][61]** This property indicates
whether execution latencies should be tracked and calculated as percentiles.
If they are disabled, all summary statistics (mean, percentiles) are
returned as -1. Default: false
- - `options.capacity` **[Number][62]** the number of concurrent requests allowed.
+ - `options.capacity` **[Number][59]** the number of concurrent requests allowed.
If the number currently executing function calls is equal to
options.capacity, further calls to `fire()` are rejected until at least one
of the current requests completes. Default: `Number.MAX_SAFE_INTEGER`.
- - `options.errorThresholdPercentage` **[Number][62]** the error percentage at
+ - `options.errorThresholdPercentage` **[Number][59]** the error percentage at
which to open the circuit and start short-circuiting requests to fallback.
Default: 50
- - `options.enabled` **[boolean][64]** whether this circuit is enabled upon
+ - `options.enabled` **[boolean][61]** whether this circuit is enabled upon
construction. Default: true
- - `options.allowWarmUp` **[boolean][64]** determines whether to allow failures
+ - `options.allowWarmUp` **[boolean][61]** determines whether to allow failures
without opening the circuit during a brief warmup period (this is the
`rollingCountDuration` property). Default: false
allow before enabling the circuit. This can help in situations where no
matter what your `errorThresholdPercentage` is, if the first execution
times out or fails, the circuit immediately opens. Default: 0
- - `options.volumeThreshold` **[Number][62]** the minimum number of requests within
+ - `options.volumeThreshold` **[Number][59]** the minimum number of requests within
the rolling statistical window that must exist before the circuit breaker
can open. This is similar to `options.allowWarmUp` in that no matter how many
failures there are, if the number of requests within the statistical window
does not exceed this threshold, the circuit will remain closed. Default: 0
- - `options.errorFilter` **[Function][60]** an optional function that will be
+ - `options.errorFilter` **[Function][57]** an optional function that will be
called when the circuit's function fails (returns a rejected Promise). If
this function returns truthy, the circuit's failure statistics will not be
incremented. This is useful, for example, when you don't want HTTP 404 to
@@ -234,49 +212,49 @@ Returns **void**
Determines if the circuit has been shutdown.
-Type: [Boolean][64]
+Type: [Boolean][61]
### name
Gets the name of this circuit
-Type: [String][63]
+Type: [String][60]
### group
Gets the name of this circuit group
-Type: [String][63]
+Type: [String][60]
### pendingClose
Gets whether this cicruit is in the `pendingClosed` state
-Type: [Boolean][64]
+Type: [Boolean][61]
### closed
True if the circuit is currently closed. False otherwise.
-Type: [Boolean][64]
+Type: [Boolean][61]
### opened
True if the circuit is currently opened. False otherwise.
-Type: [Boolean][64]
+Type: [Boolean][61]
### halfOpen
True if the circuit is currently half opened. False otherwise.
-Type: [Boolean][64]
+Type: [Boolean][61]
### status
-The current [Status][20] of this [CircuitBreaker][8]
+The current [Status][17] of this [CircuitBreaker][5]
-Type: [Status][66]
+Type: [Status][63]
### stats
@@ -284,13 +262,13 @@ Type: [Status][66]
Get the current stats for the circuit.
-Type: [Object][61]
+Type: [Object][58]
### hystrixStats
Get the hystrixStats.
-Type: [HystrixStats][67]
+Type: [HystrixStats][64]
### metrics
@@ -302,33 +280,33 @@ Type: PrometheusMetrics
Gets whether the circuit is enabled or not
-Type: [Boolean][64]
+Type: [Boolean][61]
### warmUp
Gets whether the circuit is currently in warm up phase
-Type: [Boolean][64]
+Type: [Boolean][61]
### volumeThreshold
Gets the volume threshold for this circuit
-Type: [Boolean][64]
+Type: [Boolean][61]
### fallback
-Provide a fallback function for this [CircuitBreaker][8]. This
+Provide a fallback function for this [CircuitBreaker][5]. This
function will be executed when the circuit is `fire`d and fails.
It will always be preceded by a `failure` event, and `breaker.fire` returns
a rejected Promise.
#### Parameters
-- `func` **([Function][60] \| [CircuitBreaker][65])** the fallback function to execute
+- `func` **([Function][57] \| [CircuitBreaker][62])** the fallback function to execute
when the breaker has opened or when a timeout or error occurs.
-Returns **[CircuitBreaker][65]** this
+Returns **[CircuitBreaker][62]** this
### fire
@@ -337,12 +315,12 @@ returned promise will be rejected. If the action succeeds, the promise will
resolve with the resolved value from action. If a fallback function was
provided, it will be invoked in the event of any failure or timeout.
-Returns **[Promise][68]<any>** promise resolves with the circuit function's return
+Returns **[Promise][65]<any>** promise resolves with the circuit function's return
value on success or is rejected on failure of the action.
### clearCache
-Clears the cache of this [CircuitBreaker][8]
+Clears the cache of this [CircuitBreaker][5]
Returns **void**
@@ -360,12 +338,12 @@ circuit breaker itself.
#### Parameters
-- `func` **[Function][60]** a health check function which returns a promise.
-- `interval` **[Number][62]?** the amount of time between calls to the health
+- `func` **[Function][57]** a health check function which returns a promise.
+- `interval` **[Number][59]?** the amount of time between calls to the health
check function. Default: 5000 (5 seconds)
-- Throws **[TypeError][69]** if `interval` is supplied but not a number
+- Throws **[TypeError][66]** if `interval` is supplied but not a number
Returns **void**
@@ -399,7 +377,7 @@ Emitted after `options.resetTimeout` has elapsed, allowing for
a single attempt to call the service again. If that attempt is
successful, the circuit will be closed. Otherwise it remains open.
-Type: [Number][62]
+Type: [Number][59]
## CircuitBreaker#close
@@ -430,14 +408,14 @@ the cache, but the cache option is enabled.
Emitted when the circuit breaker is open and failing fast
-Type: [Error][70]
+Type: [Error][67]
## CircuitBreaker#timeout
Emitted when the circuit breaker action takes longer than
`options.timeout`
-Type: [Error][70]
+Type: [Error][67]
## CircuitBreaker#success
@@ -450,14 +428,14 @@ Type: any
Emitted when the rate limit has been reached and there
are no more locks to be obtained.
-Type: [Error][70]
+Type: [Error][67]
## CircuitBreaker#healthCheckFailed
Emitted with the user-supplied health check function
returns a rejected promise.
-Type: [Error][70]
+Type: [Error][67]
## CircuitBreaker#fallback
@@ -469,7 +447,7 @@ Type: any
Emitted when the circuit breaker action fails
-Type: [Error][70]
+Type: [Error][67]
## Status
@@ -477,27 +455,27 @@ Type: [Error][70]
- **See: CircuitBreaker#status**
-Tracks execution status for a given [CircuitBreaker][8].
-A Status instance is created for every [CircuitBreaker][8]
+Tracks execution status for a given [CircuitBreaker][5].
+A Status instance is created for every [CircuitBreaker][5]
and does not typically need to be created by a user.
-A Status instance will listen for all events on the [CircuitBreaker][8]
+A Status instance will listen for all events on the [CircuitBreaker][5]
and track them in a rolling statistical window. The window duration is
determined by the `rollingCountTimeout` option provided to the
-[CircuitBreaker][8]. The window consists of an array of Objects,
-each representing the counts for a [CircuitBreaker][8]'s events.
+[CircuitBreaker][5]. The window consists of an array of Objects,
+each representing the counts for a [CircuitBreaker][5]'s events.
-The array's length is determined by the [CircuitBreaker][8]'s
+The array's length is determined by the [CircuitBreaker][5]'s
`rollingCountBuckets` option. The duration of each slice of the window
is determined by dividing the `rollingCountTimeout` by
`rollingCountBuckets`.
### Parameters
-- `options` **[Object][61]** for the status window
- - `options.rollingCountBuckets` **[Number][62]** number of buckets in the window
- - `options.rollingCountTimeout` **[Number][62]** the duration of the window
- - `options.rollingPercentilesEnabled` **[Boolean][64]** whether to calculate
+- `options` **[Object][58]** for the status window
+ - `options.rollingCountBuckets` **[Number][59]** number of buckets in the window
+ - `options.rollingCountTimeout` **[Number][59]** the duration of the window
+ - `options.rollingPercentilesEnabled` **[Boolean][61]** whether to calculate
percentiles
### Examples
@@ -519,37 +497,37 @@ circuit.status.window;
Get the cumulative stats for the current window
-Type: [Object][61]
+Type: [Object][58]
### window
Gets the stats window as an array of time-sliced objects.
-Type: [Array][71]
+Type: [Array][68]
## Status#snapshot
Emitted at each time-slice. Listeners for this
event will receive a cumulative snapshot of the current status window.
-Type: [Object][61]
+Type: [Object][58]
## HystrixStats
- **See: CircuitBreaker#hystrixStats**
-Stream Hystrix Metrics for a given [CircuitBreaker][8].
-A HystrixStats instance is created for every [CircuitBreaker][8]
+Stream Hystrix Metrics for a given [CircuitBreaker][5].
+A HystrixStats instance is created for every [CircuitBreaker][5]
and does not typically need to be created by a user.
A HystrixStats instance will listen for all events on the
-[Status#snapshot][72]
+[Status#snapshot][69]
and format the data to the proper Hystrix format.
Making it easy to construct an Event Stream for a client
### Parameters
-- `the` **[CircuitBreaker][65]** circuit breaker
+- `the` **[CircuitBreaker][62]** circuit breaker
### Examples
@@ -577,142 +555,136 @@ Returns **void**
[2]: #parameters
-[3]: #factorypromisify
-
-[4]: #parameters-1
-
-[5]: #examples
-
-[6]: #factorymetrics
+[3]: #factorymetrics
-[7]: #factorycircuits
+[4]: #factorycircuits
-[8]: #circuitbreaker
+[5]: #circuitbreaker
-[9]: #parameters-2
+[6]: #parameters-1
-[10]: #close
+[7]: #close
-[11]: #open
+[8]: #open
-[12]: #shutdown
+[9]: #shutdown
-[13]: #isshutdown
+[10]: #isshutdown
-[14]: #name
+[11]: #name
-[15]: #group
+[12]: #group
-[16]: #pendingclose
+[13]: #pendingclose
-[17]: #closed
+[14]: #closed
-[18]: #opened
+[15]: #opened
-[19]: #halfopen
+[16]: #halfopen
-[20]: #status
+[17]: #status
-[21]: #stats
+[18]: #stats
-[22]: #hystrixstats
+[19]: #hystrixstats
-[23]: #metrics
+[20]: #metrics
-[24]: #enabled
+[21]: #enabled
-[25]: #warmup
+[22]: #warmup
-[26]: #volumethreshold
+[23]: #volumethreshold
-[27]: #fallback
+[24]: #fallback
-[28]: #parameters-3
+[25]: #parameters-2
-[29]: #fire
+[26]: #fire
-[30]: #clearcache
+[27]: #clearcache
-[31]: #healthcheck
+[28]: #healthcheck
-[32]: #parameters-4
+[29]: #parameters-3
-[33]: #enable
+[30]: #enable
-[34]: #disable
+[31]: #disable
-[35]: #circuits
+[32]: #circuits
-[36]: #circuitbreakerhalfopen
+[33]: #circuitbreakerhalfopen
-[37]: #circuitbreakerclose
+[34]: #circuitbreakerclose
-[38]: #circuitbreakeropen
+[35]: #circuitbreakeropen
-[39]: #circuitbreakerfire
+[36]: #circuitbreakerfire
-[40]: #circuitbreakercachehit
+[37]: #circuitbreakercachehit
-[41]: #circuitbreakercachemiss
+[38]: #circuitbreakercachemiss
-[42]: #circuitbreakerreject
+[39]: #circuitbreakerreject
-[43]: #circuitbreakertimeout
+[40]: #circuitbreakertimeout
-[44]: #circuitbreakersuccess
+[41]: #circuitbreakersuccess
-[45]: #circuitbreakersemaphorelocked
+[42]: #circuitbreakersemaphorelocked
-[46]: #circuitbreakerhealthcheckfailed
+[43]: #circuitbreakerhealthcheckfailed
-[47]: #circuitbreakerfallback
+[44]: #circuitbreakerfallback
-[48]: #circuitbreakerfailure
+[45]: #circuitbreakerfailure
-[49]: #status-1
+[46]: #status-1
-[50]: #parameters-5
+[47]: #parameters-4
-[51]: #examples-1
+[48]: #examples
-[52]: #stats-1
+[49]: #stats-1
-[53]: #window
+[50]: #window
-[54]: #statussnapshot
+[51]: #statussnapshot
-[55]: #hystrixstats-1
+[52]: #hystrixstats-1
-[56]: #parameters-6
+[53]: #parameters-5
-[57]: #examples-2
+[54]: #examples-1
-[58]: #gethystrixstream
+[55]: #gethystrixstream
-[59]: #shutdown-1
+[56]: #shutdown-1
-[60]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
+[57]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
-[61]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
+[58]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
-[62]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
+[59]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
-[63]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
+[60]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
-[64]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
+[61]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
-[65]: #circuitbreaker
+[62]: #circuitbreaker
-[66]: #status
+[63]: #status
-[67]: #hystrixstats
+[64]: #hystrixstats
-[68]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
+[65]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
-[69]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/TypeError
+[66]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/TypeError
-[70]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error
+[67]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error
-[71]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
+[68]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
-[72]: Status#snapshot
+[69]: Status#snapshot
diff --git a/package-lock.json b/package-lock.json
index 7d6d7e6b..fac2f238 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "opossum",
- "version": "2.3.0",
+ "version": "3.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index 76ff0c22..ca478ecf 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "opossum",
- "version": "2.3.0",
+ "version": "3.0.0",
"author": "Red Hat, Inc.",
"license": "Apache-2.0",
"support": {