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

42 lines 7.06 kB
import { __decorate } 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'; let TokenEscalator = class TokenEscalator { constructor(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 escalateToken({ tokenName, authorizeUrl, isDefaultToken }) { return this.actions$ .pipe(ofType(JwtActions.ActionTypes.EscalateToken), filter(a => a.tokenName === tokenName), withLatestFrom(authorizeUrl, this.store.select(tokenFor(tokenName))), switchMap(([action, url, currentToken]) => { const headers = new HttpHeaders({ Authorization: `Bearer ${currentToken}` }); return this.http.get(url, { headers }).pipe(this.tokenExtractor.extractJwtToken({ tokenName, isDefaultToken, }), map(() => new JwtActions.EscalationSuccess(tokenName)), catchError(() => of(new JwtActions.EscalationFailed(tokenName)))); })); } }; TokenEscalator.ctorParameters = () => [ { type: Actions }, { type: Store }, { type: HttpClient }, { type: TokenExtractor } ]; TokenEscalator = __decorate([ Injectable() ], TokenEscalator); export { TokenEscalator }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZXNjYWxhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy9qd3QvIiwic291cmNlcyI6WyJqd3QtdG9rZW4tbWFuYWdtZW50L3V0aWxpdGllcy90b2tlbi1lc2NhbGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsT0FBTyxFQUNQLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFFTCxFQUFFLEdBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixHQUFHLEVBQ0gsU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBVW5ELElBQWEsY0FBYyxHQUEzQixNQUFhLGNBQWM7SUFpQ3pCLFlBQ1MsUUFBaUI7SUFDeEIsOERBQThEO0lBQ3ZELEtBQWlCLEVBQ2pCLElBQWdCLEVBQ2hCLGNBQWtDO1FBSmxDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFFakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtJQUN4QyxDQUFDO0lBckNKLDhEQUE4RDtJQUN2RCxhQUFhLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBcUI7UUFDakYsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNqQixJQUFJLENBQ0gsTUFBTSxDQUErQixVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUMxRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUN0QyxjQUFjLENBQ1osWUFBWSxFQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBdUIsU0FBUyxDQUFDLENBQUMsQ0FDN0QsRUFDRCxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxVQUFVLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUU3RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLEVBQ0gsRUFBRSxPQUFPLEVBQUUsQ0FDWixDQUFDLElBQUksQ0FDSixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztnQkFDbEMsU0FBUztnQkFDVCxjQUFjO2FBQ2YsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN0RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUNqQixJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBSyxTQUFTLENBQUMsQ0FDL0MsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUNGO0lBQ0gsQ0FBQztDQVVGLENBQUE7O1lBUG9CLE9BQU87WUFFVixLQUFLO1lBQ04sVUFBVTtZQUNBLGNBQWM7O0FBdEM1QixjQUFjO0lBRDFCLFVBQVUsRUFBRTtHQUNBLGNBQWMsQ0F5QzFCO1NBekNZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwSGVhZGVycyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9ucyxcbiAgb2ZUeXBlLFxufSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0ICogYXMgSnd0QWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IENsYWltTWFwIH0gZnJvbSAnLi4vY2xhaW0tbWFwJztcbmltcG9ydCB7IHRva2VuRm9yIH0gZnJvbSAnLi4vc2VsZWN0b3JzJztcblxuaW1wb3J0IHsgVG9rZW5FeHRyYWN0b3IgfSBmcm9tICcuL3Rva2VuLWV4dHJhY3Rvcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBFc2NhbGF0ZVRva2VuPENNID0gQ2xhaW1NYXA+IGV4dGVuZHMgUGFydGlhbDxKd3RBY3Rpb25zLlN0b3JlVG9rZW5Db25zdHJ1Y3RvcjxDTT4+IHtcbiAgYXV0aG9yaXplVXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHRva2VuTmFtZTogRXh0cmFjdDxrZXlvZiBDTSwgc3RyaW5nPjtcbn1cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9rZW5Fc2NhbGF0b3I8Q00gPSBDbGFpbU1hcD4ge1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBlc2NhbGF0ZVRva2VuKHsgdG9rZW5OYW1lLCBhdXRob3JpemVVcmwsIGlzRGVmYXVsdFRva2VuIH06IEVzY2FsYXRlVG9rZW48Q00+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG9mVHlwZTxKd3RBY3Rpb25zLkVzY2FsYXRlVG9rZW48Q00+PihKd3RBY3Rpb25zLkFjdGlvblR5cGVzLkVzY2FsYXRlVG9rZW4pLFxuICAgICAgICBmaWx0ZXIoYSA9PiBhLnRva2VuTmFtZSA9PT0gdG9rZW5OYW1lKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20oXG4gICAgICAgICAgYXV0aG9yaXplVXJsLFxuICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KHRva2VuRm9yPENNLCB0eXBlb2YgdG9rZW5OYW1lPih0b2tlbk5hbWUpKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKChbYWN0aW9uLCB1cmwsIGN1cnJlbnRUb2tlbl0pID0+IHtcbiAgICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2N1cnJlbnRUb2tlbn1gIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8e3Rva2VuOiBzdHJpbmd9PihcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIHsgaGVhZGVycyB9LFxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIHRoaXMudG9rZW5FeHRyYWN0b3IuZXh0cmFjdEp3dFRva2VuKHtcbiAgICAgICAgICAgICAgdG9rZW5OYW1lLFxuICAgICAgICAgICAgICBpc0RlZmF1bHRUb2tlbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKCgpID0+IG5ldyBKd3RBY3Rpb25zLkVzY2FsYXRpb25TdWNjZXNzKHRva2VuTmFtZSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihcbiAgICAgICAgICAgICAgbmV3IEp3dEFjdGlvbnMuRXNjYWxhdGlvbkZhaWxlZDxDTT4odG9rZW5OYW1lKSxcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgIDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcbiAgICBwdWJsaWMgdG9rZW5FeHRyYWN0b3I6IFRva2VuRXh0cmFjdG9yPENNPixcbiAgKSB7fVxuXG59XG4iXX0=