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

48 lines 5.82 kB
import { __decorate } from "tslib"; import { Injectable } from '@angular/core'; import { RetryWithEscalation, } from '@terminus/ngx-tools/jwt'; import { throwError, } from 'rxjs'; import { mergeMap, retryWhen, } from 'rxjs/operators'; let RetryWithEscalationMock = class RetryWithEscalationMock extends RetryWithEscalation { constructor() { super(...arguments); this.tokenEscalationsRequested = []; this.escalationSuccessful = true; } static forTestBed() { return { provide: RetryWithEscalation, useFactory: retryWithEscalationFactory, }; } retryWithEscalation(tokenName) { return (source) => source.pipe(retryWhen((errors) => { let tries = 0; return errors.pipe(mergeMap(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); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnktd2l0aC1lc2NhbGF0aW9uLm1vY2suanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGVybWludXMvbmd4LXRvb2xzL2p3dC90ZXN0aW5nLyIsInNvdXJjZXMiOlsicmV0cnktd2l0aC1lc2NhbGF0aW9uLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLG1CQUFtQixHQUNwQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFFTCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLElBQWEsdUJBQXVCLEdBQXBDLE1BQWEsdUJBQXVDLFNBQVEsbUJBQW1CO0lBQS9FOztRQUNTLDhCQUF5QixHQUFhLEVBQUUsQ0FBQztRQUN6Qyx5QkFBb0IsR0FBRyxJQUFJLENBQUM7SUFxQ3JDLENBQUM7SUFuQ1EsTUFBTSxDQUFDLFVBQVU7UUFDdEIsT0FBTztZQUNMLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsVUFBVSxFQUFFLDBCQUEwQjtTQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVNLG1CQUFtQixDQUFDLFNBQW9DO1FBQzdELE9BQU8sQ0FBQyxNQUF1QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM3QyxTQUFTLENBQUMsQ0FBQyxNQUE2QyxFQUFFLEVBQUU7WUFDMUQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsSUFDRSxLQUFLLEdBQUcsQ0FBQzt1QkFDSixHQUFHLFlBQVksS0FBSzt1QkFDcEIsR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQ3ZCO29CQUNBLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN4QjtnQkFFRCxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUVYLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRS9DLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO29CQUM3QixPQUFPLFVBQVUsQ0FBQztpQkFDbkI7Z0JBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1lBQzNELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUF2Q1ksdUJBQXVCO0lBRG5DLFVBQVUsRUFBRTtHQUNBLHVCQUF1QixDQXVDbkM7U0F2Q1ksdUJBQXVCO0FBeUNwQzs7R0FFRztBQUNILCtEQUErRDtBQUMvRCxNQUFNLFVBQVUsMEJBQTBCO0lBQ3hDLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxTQUFnQixFQUFFLFNBQWdCLEVBQUUsU0FBZ0IsRUFBRSxTQUFnQixDQUFDLENBQUM7QUFDN0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhaW1NYXAsXG4gIFJldHJ5V2l0aEVzY2FsYXRpb24sXG59IGZyb20gJ0B0ZXJtaW51cy9uZ3gtdG9vbHMvand0JztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIHRocm93RXJyb3IsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgbWVyZ2VNYXAsXG4gIHJldHJ5V2hlbixcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmV0cnlXaXRoRXNjYWxhdGlvbk1vY2s8Q00gPSBDbGFpbU1hcD4gZXh0ZW5kcyBSZXRyeVdpdGhFc2NhbGF0aW9uIGltcGxlbWVudHMgUmV0cnlXaXRoRXNjYWxhdGlvbiB7XG4gIHB1YmxpYyB0b2tlbkVzY2FsYXRpb25zUmVxdWVzdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgZXNjYWxhdGlvblN1Y2Nlc3NmdWwgPSB0cnVlO1xuXG4gIHB1YmxpYyBzdGF0aWMgZm9yVGVzdEJlZCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvdmlkZTogUmV0cnlXaXRoRXNjYWxhdGlvbixcbiAgICAgIHVzZUZhY3Rvcnk6IHJldHJ5V2l0aEVzY2FsYXRpb25GYWN0b3J5LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmV0cnlXaXRoRXNjYWxhdGlvbih0b2tlbk5hbWU6IEV4dHJhY3Q8a2V5b2YgQ00sIHN0cmluZz4pIHtcbiAgICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxhbnk+KSA9PiBzb3VyY2UucGlwZShcbiAgICAgIHJldHJ5V2hlbigoZXJyb3JzOiBPYnNlcnZhYmxlPEh0dHBFcnJvclJlc3BvbnNlIHwgRXJyb3I+KSA9PiB7XG4gICAgICAgIGxldCB0cmllcyA9IDA7XG4gICAgICAgIHJldHVybiBlcnJvcnMucGlwZShcbiAgICAgICAgICBtZXJnZU1hcChlcnIgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0cmllcyA+IDBcbiAgICAgICAgICAgICAgICB8fCBlcnIgaW5zdGFuY2VvZiBFcnJvclxuICAgICAgICAgICAgICAgIHx8IGVyci5zdGF0dXMgIT09IDQwM1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyaWVzICs9IDE7XG5cbiAgICAgICAgICAgIHRoaXMudG9rZW5Fc2NhbGF0aW9uc1JlcXVlc3RlZC5wdXNoKHRva2VuTmFtZSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmVzY2FsYXRpb25TdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICAgIHJldHVybiAnY29tcGxldGUnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihuZXcgRXJyb3IoJ0ZhaWxlZCB0byBlc2NhbGF0ZSB0b2tlbicpKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gbW9ja1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiByZXRyeVdpdGhFc2NhbGF0aW9uRmFjdG9yeSgpIHtcbiAgcmV0dXJuIG5ldyBSZXRyeVdpdGhFc2NhbGF0aW9uTW9jayh1bmRlZmluZWQgYXMgYW55LCB1bmRlZmluZWQgYXMgYW55LCB1bmRlZmluZWQgYXMgYW55LCB1bmRlZmluZWQgYXMgYW55KTtcbn1cbiJdfQ==