backoff-rxjs
Version:
A collection of helpful RxJS operators to deal with backoff strategies (like exponential backoff)
1 lines • 2.19 kB
JavaScript
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("rxjs")):"function"==typeof define&&define.amd?define(["rxjs"],r):"object"==typeof exports?exports["backoff-rxjs"]=r(require("rxjs")):e["backoff-rxjs"]=r(e.rxjs)}(self,(e=>(()=>{"use strict";var r={145:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.intervalBackoff=void 0;var n=t(130),o=t(867);r.intervalBackoff=function(e,r){void 0===r&&(r=n.asyncScheduler);var t="number"==typeof e?{initialInterval:e}:e,a=t.initialInterval,i=t.maxInterval,f=void 0===i?1/0:i,u=t.backoffDelay,c=void 0===u?o.exponentialBackoffDelay:u;return a=a<0?0:a,(0,n.of)(0,r).pipe((0,n.expand)((function(e){return(0,n.timer)((0,o.getDelay)(c(e,a),f)).pipe((0,n.mapTo)(e+1))})))}},795:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.retryBackoff=void 0;var n=t(130),o=t(867);r.retryBackoff=function(e){var r="number"==typeof e?{initialInterval:e}:e,t=r.initialInterval,a=r.maxRetries,i=void 0===a?1/0:a,f=r.maxInterval,u=void 0===f?1/0:f,c=r.shouldRetry,l=void 0===c?function(){return!0}:c,v=r.resetOnSuccess,p=void 0!==v&&v,d=r.backoffDelay,y=void 0===d?o.exponentialBackoffDelay:d;return function(e){return(0,n.defer)((function(){var r=0;return e.pipe((0,n.retryWhen)((function(e){return e.pipe((0,n.concatMap)((function(e){var a=r++;return(0,n.iif)((function(){return a<i&&l(e)}),(0,n.timer)((0,o.getDelay)(y(a,t),u)),(0,n.throwError)(e))})))})),(0,n.tap)((function(){p&&(r=0)})))}))}}},867:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.exponentialBackoffDelay=r.getDelay=void 0,r.getDelay=function(e,r){return Math.min(e,r)},r.exponentialBackoffDelay=function(e,r){return Math.pow(2,e)*r}},130:r=>{r.exports=e}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}};return r[e](a,a.exports,n),a.exports}var o={};return(()=>{var e=o;Object.defineProperty(e,"__esModule",{value:!0}),e.intervalBackoff=e.retryBackoff=void 0;var r=n(795);Object.defineProperty(e,"retryBackoff",{enumerable:!0,get:function(){return r.retryBackoff}});var t=n(145);Object.defineProperty(e,"intervalBackoff",{enumerable:!0,get:function(){return t.intervalBackoff}})})(),o})()));