{"version":3,"file":"retry.cjs","sources":["delayFunction.js","retryFunction.js","retryLink.js"],"sourcesContent":["export function buildDelayFunction(delayOptions) {\n    var _a = delayOptions || {}, _b = _a.initial, initial = _b === void 0 ? 300 : _b, _c = _a.jitter, jitter = _c === void 0 ? true : _c, _d = _a.max, max = _d === void 0 ? Infinity : _d;\n    var baseDelay = jitter ? initial : initial / 2;\n    return function delayFunction(count) {\n        var delay = Math.min(max, baseDelay * Math.pow(2, count));\n        if (jitter) {\n            delay = Math.random() * delay;\n        }\n        return delay;\n    };\n}\n//# sourceMappingURL=delayFunction.js.map","export function buildRetryFunction(retryOptions) {\n    var _a = retryOptions || {}, retryIf = _a.retryIf, _b = _a.max, max = _b === void 0 ? 5 : _b;\n    return function retryFunction(count, operation, error) {\n        if (count >= max)\n            return false;\n        return retryIf ? retryIf(error, operation) : !!error;\n    };\n}\n//# sourceMappingURL=retryFunction.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { ApolloLink } from '../core';\nimport { Observable } from '../../utilities';\nimport { buildDelayFunction, } from './delayFunction';\nimport { buildRetryFunction, } from './retryFunction';\nvar RetryableOperation = (function () {\n    function RetryableOperation(operation, nextLink, delayFor, retryIf) {\n        var _this = this;\n        this.operation = operation;\n        this.nextLink = nextLink;\n        this.delayFor = delayFor;\n        this.retryIf = retryIf;\n        this.retryCount = 0;\n        this.values = [];\n        this.complete = false;\n        this.canceled = false;\n        this.observers = [];\n        this.currentSubscription = null;\n        this.onNext = function (value) {\n            _this.values.push(value);\n            for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) {\n                var observer = _a[_i];\n                if (!observer)\n                    continue;\n                observer.next(value);\n            }\n        };\n        this.onComplete = function () {\n            _this.complete = true;\n            for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) {\n                var observer = _a[_i];\n                if (!observer)\n                    continue;\n                observer.complete();\n            }\n        };\n        this.onError = function (error) { return __awaiter(_this, void 0, void 0, function () {\n            var shouldRetry, _i, _a, observer;\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0:\n                        this.retryCount += 1;\n                        return [4, this.retryIf(this.retryCount, this.operation, error)];\n                    case 1:\n                        shouldRetry = _b.sent();\n                        if (shouldRetry) {\n                            this.scheduleRetry(this.delayFor(this.retryCount, this.operation, error));\n                            return [2];\n                        }\n                        this.error = error;\n                        for (_i = 0, _a = this.observers; _i < _a.length; _i++) {\n                            observer = _a[_i];\n                            if (!observer)\n                                continue;\n                            observer.error(error);\n                        }\n                        return [2];\n                }\n            });\n        }); };\n    }\n    RetryableOperation.prototype.subscribe = function (observer) {\n        if (this.canceled) {\n            throw new Error(\"Subscribing to a retryable link that was canceled is not supported\");\n        }\n        this.observers.push(observer);\n        for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n            var value = _a[_i];\n            observer.next(value);\n        }\n        if (this.complete) {\n            observer.complete();\n        }\n        else if (this.error) {\n            observer.error(this.error);\n        }\n    };\n    RetryableOperation.prototype.unsubscribe = function (observer) {\n        var index = this.observers.indexOf(observer);\n        if (index < 0) {\n            throw new Error(\"RetryLink BUG! Attempting to unsubscribe unknown observer!\");\n        }\n        this.observers[index] = null;\n        if (this.observers.every(function (o) { return o === null; })) {\n            this.cancel();\n        }\n    };\n    RetryableOperation.prototype.start = function () {\n        if (this.currentSubscription)\n            return;\n        this.try();\n    };\n    RetryableOperation.prototype.cancel = function () {\n        if (this.currentSubscription) {\n            this.currentSubscription.unsubscribe();\n        }\n        clearTimeout(this.timerId);\n        this.timerId = undefined;\n        this.currentSubscription = null;\n        this.canceled = true;\n    };\n    RetryableOperation.prototype.try = function () {\n        this.currentSubscription = this.nextLink(this.operation).subscribe({\n            next: this.onNext,\n            error: this.onError,\n            complete: this.onComplete,\n        });\n    };\n    RetryableOperation.prototype.scheduleRetry = function (delay) {\n        var _this = this;\n        if (this.timerId) {\n            throw new Error(\"RetryLink BUG! Encountered overlapping retries\");\n        }\n        this.timerId = setTimeout(function () {\n            _this.timerId = undefined;\n            _this.try();\n        }, delay);\n    };\n    return RetryableOperation;\n}());\nvar RetryLink = (function (_super) {\n    __extends(RetryLink, _super);\n    function RetryLink(options) {\n        var _this = _super.call(this) || this;\n        var _a = options || {}, attempts = _a.attempts, delay = _a.delay;\n        _this.delayFor =\n            typeof delay === 'function' ? delay : buildDelayFunction(delay);\n        _this.retryIf =\n            typeof attempts === 'function' ? attempts : buildRetryFunction(attempts);\n        return _this;\n    }\n    RetryLink.prototype.request = function (operation, nextLink) {\n        var retryable = new RetryableOperation(operation, nextLink, this.delayFor, this.retryIf);\n        retryable.start();\n        return new Observable(function (observer) {\n            retryable.subscribe(observer);\n            return function () {\n                retryable.unsubscribe(observer);\n            };\n        });\n    };\n    return RetryLink;\n}(ApolloLink));\nexport { RetryLink };\n//# sourceMappingURL=retryLink.js.map"],"names":["__awaiter","__generator","__extends","Observable","ApolloLink"],"mappings":"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"}