UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

52 lines 6.19 kB
import { __decorate, __extends } from "tslib"; import { Injectable } from '@angular/core'; import { RetryWithEscalation, } from '@terminus/ngx-tools/jwt'; import { throwError, } from 'rxjs'; import { mergeMap, retryWhen, } from 'rxjs/operators'; var RetryWithEscalationMock = /** @class */ (function (_super) { __extends(RetryWithEscalationMock, _super); function RetryWithEscalationMock() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.tokenEscalationsRequested = []; _this.escalationSuccessful = true; return _this; } RetryWithEscalationMock.forTestBed = function () { return { provide: RetryWithEscalation, useFactory: retryWithEscalationFactory, }; }; RetryWithEscalationMock.prototype.retryWithEscalation = function (tokenName) { var _this = this; return function (source) { return source.pipe(retryWhen(function (errors) { var tries = 0; return errors.pipe(mergeMap(function (err) { if (tries > 0 || err instanceof Error || err.status !== 403) { return throwError(err); } tries += 1; _this.tokenEscalationsRequested.push(tokenName); if (_this.escalationSuccessful) { return 'complete'; } return throwError(new Error('Failed to escalate token')); })); })); }; }; RetryWithEscalationMock = __decorate([ Injectable() ], RetryWithEscalationMock); return RetryWithEscalationMock; }(RetryWithEscalation)); export { RetryWithEscalationMock }; /** * Return mock */ // eslint-disable-next-line prefer-arrow/prefer-arrow-functions export function retryWithEscalationFactory() { return new RetryWithEscalationMock(undefined, undefined, undefined, undefined); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnktd2l0aC1lc2NhbGF0aW9uLm1vY2suanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGVybWludXMvbmd4LXRvb2xzL2p3dC90ZXN0aW5nLyIsInNvdXJjZXMiOlsicmV0cnktd2l0aC1lc2NhbGF0aW9uLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLG1CQUFtQixHQUNwQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFFTCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBR3hCO0lBQTRELDJDQUFtQjtJQUEvRTtRQUFBLHFFQXVDQztRQXRDUSwrQkFBeUIsR0FBYSxFQUFFLENBQUM7UUFDekMsMEJBQW9CLEdBQUcsSUFBSSxDQUFDOztJQXFDckMsQ0FBQztJQW5DZSxrQ0FBVSxHQUF4QjtRQUNFLE9BQU87WUFDTCxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFVBQVUsRUFBRSwwQkFBMEI7U0FDdkMsQ0FBQztJQUNKLENBQUM7SUFFTSxxREFBbUIsR0FBMUIsVUFBMkIsU0FBb0M7UUFBL0QsaUJBMkJDO1FBMUJDLE9BQU8sVUFBQyxNQUF1QixJQUFLLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FDN0MsU0FBUyxDQUFDLFVBQUMsTUFBNkM7WUFDdEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixRQUFRLENBQUMsVUFBQSxHQUFHO2dCQUNWLElBQ0UsS0FBSyxHQUFHLENBQUM7dUJBQ0osR0FBRyxZQUFZLEtBQUs7dUJBQ3BCLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUN2QjtvQkFDQSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDeEI7Z0JBRUQsS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFFWCxLQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUUvQyxJQUFJLEtBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDN0IsT0FBTyxVQUFVLENBQUM7aUJBQ25CO2dCQUVELE9BQU8sVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsRUF6Qm1DLENBeUJuQyxDQUFDO0lBQ0osQ0FBQztJQXRDVSx1QkFBdUI7UUFEbkMsVUFBVSxFQUFFO09BQ0EsdUJBQXVCLENBdUNuQztJQUFELDhCQUFDO0NBQUEsQUF2Q0QsQ0FBNEQsbUJBQW1CLEdBdUM5RTtTQXZDWSx1QkFBdUI7QUF5Q3BDOztHQUVHO0FBQ0gsK0RBQStEO0FBQy9ELE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTyxJQUFJLHVCQUF1QixDQUFDLFNBQWdCLEVBQUUsU0FBZ0IsRUFBRSxTQUFnQixFQUFFLFNBQWdCLENBQUMsQ0FBQztBQUM3RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDbGFpbU1hcCxcbiAgUmV0cnlXaXRoRXNjYWxhdGlvbixcbn0gZnJvbSAnQHRlcm1pbnVzL25neC10b29scy9qd3QnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBtZXJnZU1hcCxcbiAgcmV0cnlXaGVuLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXRyeVdpdGhFc2NhbGF0aW9uTW9jazxDTSA9IENsYWltTWFwPiBleHRlbmRzIFJldHJ5V2l0aEVzY2FsYXRpb24gaW1wbGVtZW50cyBSZXRyeVdpdGhFc2NhbGF0aW9uIHtcbiAgcHVibGljIHRva2VuRXNjYWxhdGlvbnNSZXF1ZXN0ZWQ6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBlc2NhbGF0aW9uU3VjY2Vzc2Z1bCA9IHRydWU7XG5cbiAgcHVibGljIHN0YXRpYyBmb3JUZXN0QmVkKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlOiBSZXRyeVdpdGhFc2NhbGF0aW9uLFxuICAgICAgdXNlRmFjdG9yeTogcmV0cnlXaXRoRXNjYWxhdGlvbkZhY3RvcnksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyByZXRyeVdpdGhFc2NhbGF0aW9uKHRva2VuTmFtZTogRXh0cmFjdDxrZXlvZiBDTSwgc3RyaW5nPikge1xuICAgIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPGFueT4pID0+IHNvdXJjZS5waXBlKFxuICAgICAgcmV0cnlXaGVuKChlcnJvcnM6IE9ic2VydmFibGU8SHR0cEVycm9yUmVzcG9uc2UgfCBFcnJvcj4pID0+IHtcbiAgICAgICAgbGV0IHRyaWVzID0gMDtcbiAgICAgICAgcmV0dXJuIGVycm9ycy5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKGVyciA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRyaWVzID4gMFxuICAgICAgICAgICAgICAgIHx8IGVyciBpbnN0YW5jZW9mIEVycm9yXG4gICAgICAgICAgICAgICAgfHwgZXJyLnN0YXR1cyAhPT0gNDAzXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJpZXMgKz0gMTtcblxuICAgICAgICAgICAgdGhpcy50b2tlbkVzY2FsYXRpb25zUmVxdWVzdGVkLnB1c2godG9rZW5OYW1lKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZXNjYWxhdGlvblN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICdjb21wbGV0ZSc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKG5ldyBFcnJvcignRmFpbGVkIHRvIGVzY2FsYXRlIHRva2VuJykpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiBtb2NrXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9uc1xuZXhwb3J0IGZ1bmN0aW9uIHJldHJ5V2l0aEVzY2FsYXRpb25GYWN0b3J5KCkge1xuICByZXR1cm4gbmV3IFJldHJ5V2l0aEVzY2FsYXRpb25Nb2NrKHVuZGVmaW5lZCBhcyBhbnksIHVuZGVmaW5lZCBhcyBhbnksIHVuZGVmaW5lZCBhcyBhbnksIHVuZGVmaW5lZCBhcyBhbnkpO1xufVxuIl19