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

56 lines 6.82 kB
import { __decorate } from "tslib"; import { Injectable } from '@angular/core'; import { Store } from '@ngrx/store'; import { isHttpResponse, isTokenResponse, } from '@terminus/ngx-tools/type-guards'; import { tap } from 'rxjs/operators'; import { StoreToken, } from '../actions'; export var TOKEN_NOT_FOUND_ERROR = new Error('Token Not found in response'); var TokenExtractor = /** @class */ (function () { function TokenExtractor( // eslint-disable-next-line @typescript-eslint/no-explicit-any store) { this.store = store; } // eslint-disable-next-line @typescript-eslint/no-explicit-any TokenExtractor.prototype.extractJwtToken = function (_a) { var _this = this; var tokenName = _a.tokenName, isDefaultToken = _a.isDefaultToken; return function (source) { return source.pipe(tap(function (request) { var token = _this.extractTokenFromResponse(request); if (token === '') { throw TOKEN_NOT_FOUND_ERROR; } else { _this.store.dispatch(new StoreToken({ tokenName: tokenName, token: token, isDefaultToken: isDefaultToken, })); } })); }; }; // eslint-disable-next-line @typescript-eslint/no-explicit-any TokenExtractor.prototype.extractTokenFromResponse = function (input) { var token = ''; if (isTokenResponse(input)) { token = input.token; } else if (isHttpResponse(input)) { var authHeader = input.headers.get('Authorization'); var tokenStartsAtChar = 7; if (authHeader && authHeader.startsWith('Bearer ')) { token = authHeader.substr(tokenStartsAtChar); } } return token; }; TokenExtractor.ctorParameters = function () { return [ { type: Store } ]; }; TokenExtractor = __decorate([ Injectable() ], TokenExtractor); return TokenExtractor; }()); export { TokenExtractor }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy9qd3QvIiwic291cmNlcyI6WyJqd3QtdG9rZW4tbWFuYWdtZW50L3V0aWxpdGllcy90b2tlbi1leHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGVBQWUsR0FDaEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUNMLFVBQVUsR0FFWCxNQUFNLFlBQVksQ0FBQztBQVNwQixNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBSTlFO0lBc0NFO0lBQ0UsOERBQThEO0lBQ3ZELEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7SUFDdkIsQ0FBQztJQXhDSiw4REFBOEQ7SUFDdkQsd0NBQWUsR0FBdEIsVUFBNkQsRUFBcUQ7UUFBbEgsaUJBZ0JDO1lBaEI4RCx3QkFBUyxFQUFFLGtDQUFjO1FBQ3RGLE9BQU8sVUFBQyxNQUFxQixJQUFLLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FDM0MsR0FBRyxDQUFDLFVBQUEsT0FBTztZQUNULElBQU0sS0FBSyxHQUFHLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVyRCxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0scUJBQXFCLENBQUM7YUFDN0I7aUJBQU07Z0JBQ0wsS0FBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLENBQUs7b0JBQ3JDLFNBQVMsV0FBQTtvQkFDVCxLQUFLLE9BQUE7b0JBQ0wsY0FBYyxnQkFBQTtpQkFDZixDQUFDLENBQUMsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsRUFkaUMsQ0FjakMsQ0FBQztJQUNKLENBQUM7SUFFRCw4REFBOEQ7SUFDdkQsaURBQXdCLEdBQS9CLFVBQXNFLEtBQVE7UUFDNUUsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWYsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDckI7YUFBTSxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQyxJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN0RCxJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztZQUU1QixJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNsRCxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQzlDO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2dCQUllLEtBQUs7O0lBeENWLGNBQWM7UUFEMUIsVUFBVSxFQUFFO09BQ0EsY0FBYyxDQTJDMUI7SUFBRCxxQkFBQztDQUFBLEFBM0NELElBMkNDO1NBM0NZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIGlzSHR0cFJlc3BvbnNlLFxuICBpc1Rva2VuUmVzcG9uc2UsXG59IGZyb20gJ0B0ZXJtaW51cy9uZ3gtdG9vbHMvdHlwZS1ndWFyZHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTdG9yZVRva2VuLFxuICBTdG9yZVRva2VuQ29uc3RydWN0b3IsXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgQ2xhaW1NYXAgfSBmcm9tICcuLi9jbGFpbS1tYXAnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdFRva2VuUGFyYW1zPEMgPSBDbGFpbU1hcD4gZXh0ZW5kcyBQYXJ0aWFsPFN0b3JlVG9rZW5Db25zdHJ1Y3RvcjxDPj4ge1xuICB0b2tlbk5hbWU6IEV4dHJhY3Q8a2V5b2YgQywgc3RyaW5nPjtcbn1cblxuXG5leHBvcnQgY29uc3QgVE9LRU5fTk9UX0ZPVU5EX0VSUk9SID0gbmV3IEVycm9yKCdUb2tlbiBOb3QgZm91bmQgaW4gcmVzcG9uc2UnKTtcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9rZW5FeHRyYWN0b3I8Q00gPSBDbGFpbU1hcD4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgZXh0cmFjdEp3dFRva2VuPFQgZXh0ZW5kcyBPYmplY3QgfCBIdHRwUmVzcG9uc2U8YW55Pj4oeyB0b2tlbk5hbWUsIGlzRGVmYXVsdFRva2VuIH06IEV4dHJhY3RUb2tlblBhcmFtczxDTT4pIHtcbiAgICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gc291cmNlLnBpcGUoXG4gICAgICB0YXAocmVxdWVzdCA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5leHRyYWN0VG9rZW5Gcm9tUmVzcG9uc2UocmVxdWVzdCk7XG5cbiAgICAgICAgaWYgKHRva2VuID09PSAnJykge1xuICAgICAgICAgIHRocm93IFRPS0VOX05PVF9GT1VORF9FUlJPUjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTdG9yZVRva2VuPENNPih7XG4gICAgICAgICAgICB0b2tlbk5hbWUsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIGlzRGVmYXVsdFRva2VuLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBleHRyYWN0VG9rZW5Gcm9tUmVzcG9uc2U8VCBleHRlbmRzIE9iamVjdCB8IEh0dHBSZXNwb25zZTxhbnk+PihpbnB1dDogVCk6IHN0cmluZyB7XG4gICAgbGV0IHRva2VuID0gJyc7XG5cbiAgICBpZiAoaXNUb2tlblJlc3BvbnNlKGlucHV0KSkge1xuICAgICAgdG9rZW4gPSBpbnB1dC50b2tlbjtcbiAgICB9IGVsc2UgaWYgKGlzSHR0cFJlc3BvbnNlKGlucHV0KSkge1xuICAgICAgY29uc3QgYXV0aEhlYWRlciA9IGlucHV0LmhlYWRlcnMuZ2V0KCdBdXRob3JpemF0aW9uJyk7XG4gICAgICBjb25zdCB0b2tlblN0YXJ0c0F0Q2hhciA9IDc7XG5cbiAgICAgIGlmIChhdXRoSGVhZGVyICYmIGF1dGhIZWFkZXIuc3RhcnRzV2l0aCgnQmVhcmVyICcpKSB7XG4gICAgICAgIHRva2VuID0gYXV0aEhlYWRlci5zdWJzdHIodG9rZW5TdGFydHNBdENoYXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0b2tlbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHN0b3JlOiBTdG9yZTxhbnk+LFxuICApIHt9XG5cbn1cbiJdfQ==