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 @@ - opossum 2.3.0 | Documentation + opossum 3.0.0 | Documentation @@ -15,7 +15,7 @@

opossum

-
2.3.0
+
3.0.0
opossum -
  • - factory.promisify - - - -
  • - -
  • @@ -664,12 +654,13 @@

    Promises vs. Callbacks

    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().

    +callback functions into something 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.

    - -
    - - - - - - - - - - - -
    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": {