Changelog
2.0.2
- feat: improve event performance
- fix: export
IDisposable
2.0.1
- fix: remove incorrect deprecated marker on
RetryPolicy.onGiveUp
- fix: incorrect typings in
retry().backoff()
(#34)
2.0.0 - 2020-09-24
breaking: reactor: introduce a separate BackoffFactory interface for the first backoff
This only requires changes if you use retry policies in your own code, outside of the
Policy.retry()
.See #30. For some backoff policies, such as delegate and exponential policies, the first backoff was always 0, before
next()
was called. This is undesirable, and fixing it involved separating the backoff factory from the backoff itself.The backoff classes, such as
DelegateBackoff
andExponentialBackoff
, now only have anext()
method. Theduration
, which is now a property instead of a method, is only available after the firstnext()
call.For example, previously if you did this:
let backoff = new ExponentialBackoff(); while (!succeeded) { if (!tryAgain()) { await delay(backoff.duration()); backoff = backoff.next(); } }
You now need to call
next()
before you accessduration
:let backoff = new ExponentialBackoff(); while (!succeeded) { if (!tryAgain()) { backoff = backoff.next(); await delay(backoff.duration); } }
Note: if you use typescript, you will need another variable for it to understand you. Here’s an example of how we use it inside the RetryPolicy.
1.1.1 - 2020-07-17
- fix: events on the timeout policy being emitted incorrectly, or not emitted (see #27)
1.1.0 - 2020-07-08
- feat: add an optional
CancellationToken
toIPolicy.execute
. Add cancellation awareness to all policies; see their specific documentation for more information. (see #25) - docs: fix outdated docs on
Policy.circuitBreaker
and unnecessary dashes in jsdoc comments (see #22, #23, #24)
1.0.1 - 2020-06-22
- fix: cockatiel not working in certain browser builds
1.0.0 - 2020-06-16
- breaking: Node versions <10 are no longer supported.
- breaking:
FallbackPolicy.onFallback
is replaced withFallbackPolicy.onFailure
. When a failure happens, a fallback will occur. - feat: add
isBrokenCircuitError
,isBulkheadRejectedError
,isIsolatedCircuitError
,isTaskCancelledError
methods to the errors and matching predicate functions. - feat: all policies now include
onFailure
andonSuccess
callbacks for monitoring purposes (see #20) - fix: add
onHalfOpen
event to the circuit breaker (see #18) - fix:
retry.exponential()
requiring an argument when it should have been optional (see #18)
0.1.5 - 2020-03-01
- feat: add
.dangerouslyUnref
methods for timeouts and retries (#11, thanks to @novemberborn)
0.1.4 - 2020-02-24
- fix:
Timeout.Aggressive
triggering timeouts immediately (#16, thanks to @ekillops) - fix: correctly compile to ES2018 (#10, thanks to @novemberborn)
0.1.3 - 2020-01-26
- feat: add new
Policy.use()
decorator
0.1.2 - 2019-12-12
- fix: wrong typing information for options to
retry.exponential()
0.1.1 - 2019-12-01
- fix: jitter backoff not applying max delay correctly
- fix: jitter backoff adding more than intended amount of jitter
0.1.0 - 2019-11-24
Initial Release