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

46 lines 7.54 kB
import { __decorate, __read } from "tslib"; import { HttpClient, HttpHeaders, } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Actions, ofType, } from '@ngrx/effects'; import { Store } from '@ngrx/store'; import { of, } from 'rxjs'; import { catchError, filter, map, switchMap, withLatestFrom, } from 'rxjs/operators'; import * as JwtActions from '../actions'; import { tokenFor } from '../selectors'; import { TokenExtractor } from './token-extractor'; var TokenEscalator = /** @class */ (function () { function TokenEscalator(actions$, // eslint-disable-next-line @typescript-eslint/no-explicit-any store, http, tokenExtractor) { this.actions$ = actions$; this.store = store; this.http = http; this.tokenExtractor = tokenExtractor; } // eslint-disable-next-line @typescript-eslint/no-explicit-any TokenEscalator.prototype.escalateToken = function (_a) { var _this = this; var tokenName = _a.tokenName, authorizeUrl = _a.authorizeUrl, isDefaultToken = _a.isDefaultToken; return this.actions$ .pipe(ofType(JwtActions.ActionTypes.EscalateToken), filter(function (a) { return a.tokenName === tokenName; }), withLatestFrom(authorizeUrl, this.store.select(tokenFor(tokenName))), switchMap(function (_a) { var _b = __read(_a, 3), action = _b[0], url = _b[1], currentToken = _b[2]; var headers = new HttpHeaders({ Authorization: "Bearer " + currentToken }); return _this.http.get(url, { headers: headers }).pipe(_this.tokenExtractor.extractJwtToken({ tokenName: tokenName, isDefaultToken: isDefaultToken, }), map(function () { return new JwtActions.EscalationSuccess(tokenName); }), catchError(function () { return of(new JwtActions.EscalationFailed(tokenName)); })); })); }; TokenEscalator.ctorParameters = function () { return [ { type: Actions }, { type: Store }, { type: HttpClient }, { type: TokenExtractor } ]; }; TokenEscalator = __decorate([ Injectable() ], TokenEscalator); return TokenEscalator; }()); export { TokenEscalator }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZXNjYWxhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy9qd3QvIiwic291cmNlcyI6WyJqd3QtdG9rZW4tbWFuYWdtZW50L3V0aWxpdGllcy90b2tlbi1lc2NhbGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsT0FBTyxFQUNQLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFFTCxFQUFFLEdBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixHQUFHLEVBQ0gsU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBVW5EO0lBaUNFLHdCQUNTLFFBQWlCO0lBQ3hCLDhEQUE4RDtJQUN2RCxLQUFpQixFQUNqQixJQUFnQixFQUNoQixjQUFrQztRQUpsQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBRWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7SUFDeEMsQ0FBQztJQXJDSiw4REFBOEQ7SUFDdkQsc0NBQWEsR0FBcEIsVUFBcUIsRUFBOEQ7UUFBbkYsaUJBNEJDO1lBNUJzQix3QkFBUyxFQUFFLDhCQUFZLEVBQUUsa0NBQWM7UUFDNUQsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNqQixJQUFJLENBQ0gsTUFBTSxDQUErQixVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUMxRSxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBekIsQ0FBeUIsQ0FBQyxFQUN0QyxjQUFjLENBQ1osWUFBWSxFQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBdUIsU0FBUyxDQUFDLENBQUMsQ0FDN0QsRUFDRCxTQUFTLENBQUMsVUFBQyxFQUEyQjtnQkFBM0Isa0JBQTJCLEVBQTFCLGNBQU0sRUFBRSxXQUFHLEVBQUUsb0JBQVk7WUFDbkMsSUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxhQUFhLEVBQUUsWUFBVSxZQUFjLEVBQUUsQ0FBQyxDQUFDO1lBRTdFLE9BQU8sS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsRUFDSCxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQ1osQ0FBQyxJQUFJLENBQ0osS0FBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7Z0JBQ2xDLFNBQVMsV0FBQTtnQkFDVCxjQUFjLGdCQUFBO2FBQ2YsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxjQUFNLE9BQUEsSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEVBQTNDLENBQTJDLENBQUMsRUFDdEQsVUFBVSxDQUFDLGNBQU0sT0FBQSxFQUFFLENBQ2pCLElBQUksVUFBVSxDQUFDLGdCQUFnQixDQUFLLFNBQVMsQ0FBQyxDQUMvQyxFQUZnQixDQUVoQixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQ0Y7SUFDSCxDQUFDOztnQkFHa0IsT0FBTztnQkFFVixLQUFLO2dCQUNOLFVBQVU7Z0JBQ0EsY0FBYzs7SUF0QzVCLGNBQWM7UUFEMUIsVUFBVSxFQUFFO09BQ0EsY0FBYyxDQXlDMUI7SUFBRCxxQkFBQztDQUFBLEFBekNELElBeUNDO1NBekNZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwSGVhZGVycyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9ucyxcbiAgb2ZUeXBlLFxufSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0ICogYXMgSnd0QWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IENsYWltTWFwIH0gZnJvbSAnLi4vY2xhaW0tbWFwJztcbmltcG9ydCB7IHRva2VuRm9yIH0gZnJvbSAnLi4vc2VsZWN0b3JzJztcblxuaW1wb3J0IHsgVG9rZW5FeHRyYWN0b3IgfSBmcm9tICcuL3Rva2VuLWV4dHJhY3Rvcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBFc2NhbGF0ZVRva2VuPENNID0gQ2xhaW1NYXA+IGV4dGVuZHMgUGFydGlhbDxKd3RBY3Rpb25zLlN0b3JlVG9rZW5Db25zdHJ1Y3RvcjxDTT4+IHtcbiAgYXV0aG9yaXplVXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHRva2VuTmFtZTogRXh0cmFjdDxrZXlvZiBDTSwgc3RyaW5nPjtcbn1cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9rZW5Fc2NhbGF0b3I8Q00gPSBDbGFpbU1hcD4ge1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBlc2NhbGF0ZVRva2VuKHsgdG9rZW5OYW1lLCBhdXRob3JpemVVcmwsIGlzRGVmYXVsdFRva2VuIH06IEVzY2FsYXRlVG9rZW48Q00+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG9mVHlwZTxKd3RBY3Rpb25zLkVzY2FsYXRlVG9rZW48Q00+PihKd3RBY3Rpb25zLkFjdGlvblR5cGVzLkVzY2FsYXRlVG9rZW4pLFxuICAgICAgICBmaWx0ZXIoYSA9PiBhLnRva2VuTmFtZSA9PT0gdG9rZW5OYW1lKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20oXG4gICAgICAgICAgYXV0aG9yaXplVXJsLFxuICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KHRva2VuRm9yPENNLCB0eXBlb2YgdG9rZW5OYW1lPih0b2tlbk5hbWUpKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKChbYWN0aW9uLCB1cmwsIGN1cnJlbnRUb2tlbl0pID0+IHtcbiAgICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2N1cnJlbnRUb2tlbn1gIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8e3Rva2VuOiBzdHJpbmd9PihcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIHsgaGVhZGVycyB9LFxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIHRoaXMudG9rZW5FeHRyYWN0b3IuZXh0cmFjdEp3dFRva2VuKHtcbiAgICAgICAgICAgICAgdG9rZW5OYW1lLFxuICAgICAgICAgICAgICBpc0RlZmF1bHRUb2tlbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKCgpID0+IG5ldyBKd3RBY3Rpb25zLkVzY2FsYXRpb25TdWNjZXNzKHRva2VuTmFtZSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihcbiAgICAgICAgICAgICAgbmV3IEp3dEFjdGlvbnMuRXNjYWxhdGlvbkZhaWxlZDxDTT4odG9rZW5OYW1lKSxcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgIDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcbiAgICBwdWJsaWMgdG9rZW5FeHRyYWN0b3I6IFRva2VuRXh0cmFjdG9yPENNPixcbiAgKSB7fVxuXG59XG4iXX0=