UNPKG

air-lib

Version:

This is Air's angular component library

73 lines 7.53 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { BusMessage } from '../entities/bus-message'; import { HttpResponse } from '@angular/common/http'; import { finalize, tap } from 'rxjs/operators'; import { CommunicationService } from './communication.service'; import * as i0 from "@angular/core"; export class HttpInterceptorService { constructor() { this.count = 0; this.interceptorDto = new BusMessage(); } /** * @param {?} req * @param {?} next * @return {?} */ intercept(req, next) { /** @type {?} */ const started = Date.now(); /** @type {?} */ let ok; if (this.count === 0) { this.interceptorDto.name = 'http started'; CommunicationService.get().emit(this.interceptorDto); } this.count++; // extend server response observable with logging return next.handle(req) .pipe(tap( // Succeeds when there is a response; ignore other events event => ok = event instanceof HttpResponse ? 'succeeded' : '', // Operation failed; error is an HttpErrorResponse error => ok = 'failed'), // Log when response observable either completes or errors finalize(() => { this.count--; if (this.count === 0) { this.interceptorDto.name = 'http finished'; CommunicationService.get().emit(this.interceptorDto); } /** @type {?} */ const elapsed = Date.now() - started; /** @type {?} */ const msg = `${req.method} "${req.urlWithParams}" ${ok} in ${elapsed} ms.`; console.log(msg); })); } } HttpInterceptorService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; HttpInterceptorService.ctorParameters = () => []; /** @nocollapse */ HttpInterceptorService.ngInjectableDef = i0.defineInjectable({ factory: function HttpInterceptorService_Factory() { return new HttpInterceptorService(); }, token: HttpInterceptorService, providedIn: "root" }); if (false) { /** * @type {?} * @private */ HttpInterceptorService.prototype.count; /** * @type {?} * @private */ HttpInterceptorService.prototype.interceptorDto; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWlyLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9odHRwLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBNEIsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHOUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLL0QsTUFBTTtJQUlGO1FBRk0sVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdaLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzs7Ozs7SUFDRixTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjs7Y0FDeEMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7O1lBQ3RCLEVBQVU7UUFDZCxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFHO1lBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztZQUMxQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRyxDQUFDO1FBQ2QsaURBQWlEO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDbEIsSUFBSSxDQUNELEdBQUc7UUFDQyx5REFBeUQ7UUFDekQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxZQUFZLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlELGtEQUFrRDtRQUNsRCxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQ3pCO1FBQ0QsMERBQTBEO1FBQzFELFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSyxFQUFHLENBQUM7WUFDZCxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFHO2dCQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7Z0JBQzNDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDeEQ7O2tCQUNLLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTzs7a0JBQzlCLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLGFBQWE7c0JBQzdDLEVBQUUsT0FBTyxPQUFPLE1BQU07WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQzs7O1lBeENKLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7Ozs7O0lBR0MsdUNBQWtCOzs7OztJQUNoQixnREFBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1c01lc3NhZ2UgfSBmcm9tICcuLi9lbnRpdGllcy9idXMtbWVzc2FnZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0LCBIdHRwSGFuZGxlciwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge0h0dHBFdmVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAvc3JjL3Jlc3BvbnNlJzsgLy8gZG9uJ3QgcmVtb3ZlIGZvbGxvd2luZyAyXHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlJztcclxuaW1wb3J0IHsgZmluYWxpemUsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tbXVuaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbW11bmljYXRpb24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIdHRwSW50ZXJjZXB0b3JTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBjb3VudCA9IDA7XHJcbiAgICBwcml2YXRlIGludGVyY2VwdG9yRHRvOiBCdXNNZXNzYWdlO1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcmNlcHRvckR0byA9IG5ldyBCdXNNZXNzYWdlKCk7XHJcbiAgICAgfVxyXG4gICAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcclxuICAgICAgICBjb25zdCBzdGFydGVkID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBsZXQgb2s6IHN0cmluZztcclxuICAgICAgICBpZiAodGhpcy5jb3VudCA9PT0gMCApIHtcclxuICAgICAgICAgICAgdGhpcy5pbnRlcmNlcHRvckR0by5uYW1lID0gJ2h0dHAgc3RhcnRlZCc7XHJcbiAgICAgICAgICAgIENvbW11bmljYXRpb25TZXJ2aWNlLmdldCgpLmVtaXQodGhpcy5pbnRlcmNlcHRvckR0byk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY291bnQgKys7XHJcbiAgICAgICAgLy8gZXh0ZW5kIHNlcnZlciByZXNwb25zZSBvYnNlcnZhYmxlIHdpdGggbG9nZ2luZ1xyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFwKFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFN1Y2NlZWRzIHdoZW4gdGhlcmUgaXMgYSByZXNwb25zZTsgaWdub3JlIG90aGVyIGV2ZW50c1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50ID0+IG9rID0gZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UgPyAnc3VjY2VlZGVkJyA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIE9wZXJhdGlvbiBmYWlsZWQ7IGVycm9yIGlzIGFuIEh0dHBFcnJvclJlc3BvbnNlXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPT4gb2sgPSAnZmFpbGVkJ1xyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIC8vIExvZyB3aGVuIHJlc3BvbnNlIG9ic2VydmFibGUgZWl0aGVyIGNvbXBsZXRlcyBvciBlcnJvcnNcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50IC0tO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvdW50ID09PSAwICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVyY2VwdG9yRHRvLm5hbWUgPSAnaHR0cCBmaW5pc2hlZCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbW11bmljYXRpb25TZXJ2aWNlLmdldCgpLmVtaXQodGhpcy5pbnRlcmNlcHRvckR0byk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsYXBzZWQgPSBEYXRlLm5vdygpIC0gc3RhcnRlZDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSBgJHtyZXEubWV0aG9kfSBcIiR7cmVxLnVybFdpdGhQYXJhbXN9XCJcclxuICAgICAgICAgICAgICAgICAgICAke29rfSBpbiAke2VsYXBzZWR9IG1zLmA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobXNnKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19