UNPKG

performance-monitor-logger

Version:

## Instalação

57 lines 10.1 kB
import { HttpResponse, } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { tap } from 'rxjs/operators'; import { GlobalPerformanceLogger } from '../performanceLoggerGlobal'; export class PerformanceMonitorInterceptor { intercept(req, next) { var _a; // Ignora arquivos de assets if (!req.url.startsWith('./assets')) { // 🔹 Recupera dados da sessão let tela = sessionStorage.getItem('idTela'); if (!tela) { tela = 'SEL041'; sessionStorage.setItem('idTela', tela); } const cdUsuario = (_a = sessionStorage.getItem('cdUsuario')) !== null && _a !== void 0 ? _a : ''; // 🔹 Clona a requisição adicionando headers const authReq = req.clone({ headers: req.headers .set('tela_id', tela) .set('tela', 'SEL041') .set('user', cdUsuario), }); const start = performance.now(); return next.handle(authReq).pipe(tap({ next: (event) => { var _a, _b; if (event instanceof HttpResponse) { const tempo = performance.now() - start; // ✅ Verificação segura do body e suas propriedades const operationType = ((_a = authReq.body) === null || _a === void 0 ? void 0 : _a.operationType) || 'UNKNOWN'; const operationName = ((_b = authReq.body) === null || _b === void 0 ? void 0 : _b.name) || ''; console.log(`%c🟢 [HTTP] ${operationType} ${operationType === 'SELECT_FULL' ? '' : operationName} - ${tempo.toFixed(1)}ms`, 'color: #7048cfff; font-weight: bold;'); GlobalPerformanceLogger.registerHttpRequest(authReq, tempo, false); } }, error: (error) => { var _a, _b; const tempo = performance.now() - start; // ✅ Verificação segura do body e suas propriedades const operationType = ((_a = authReq.body) === null || _a === void 0 ? void 0 : _a.operationType) || 'UNKNOWN'; const operationName = ((_b = authReq.body) === null || _b === void 0 ? void 0 : _b.name) || ''; console.groupCollapsed(`%c🔴 [HTTP] ${operationType} ${operationName} - ${tempo.toFixed(1)}ms`, 'color: #7048cfff; font-weight: bold;'); console.error(error); console.groupEnd(); GlobalPerformanceLogger.registerHttpRequest(authReq, tempo, true); }, })); } // Requisição de asset, passa direto return next.handle(req); } } PerformanceMonitorInterceptor.decorators = [ { type: Injectable } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2UtbW9uaXRvci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BlcmZvcm1hbmNlLW1vbml0b3ItbG9nZ2VyL3NyYy9saWIvc2hhcmVkL3BlcmZvcm1hbmNlLW1vbml0b3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLFlBQVksR0FFYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3JFLE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsU0FBUyxDQUNQLEdBQXFCLEVBQ3JCLElBQWlCOztRQUVqQiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ25DLDhCQUE4QjtZQUM5QixJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsSUFBSSxHQUFHLFFBQVEsQ0FBQztnQkFDaEIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDeEM7WUFDRCxNQUFNLFNBQVMsU0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxtQ0FBSSxFQUFFLENBQUM7WUFFNUQsNENBQTRDO1lBQzVDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztxQkFDakIsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7cUJBQ3BCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO3FCQUNyQixHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQzthQUMxQixDQUFDLENBQUM7WUFFSCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUIsR0FBRyxDQUFDO2dCQUNGLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFOztvQkFDZCxJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7d0JBQ2pDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUM7d0JBRXhDLG1EQUFtRDt3QkFDbkQsTUFBTSxhQUFhLEdBQUcsT0FBQSxPQUFPLENBQUMsSUFBSSwwQ0FBRSxhQUFhLEtBQUksU0FBUyxDQUFDO3dCQUMvRCxNQUFNLGFBQWEsR0FBRyxPQUFBLE9BQU8sQ0FBQyxJQUFJLDBDQUFFLElBQUksS0FBSSxFQUFFLENBQUM7d0JBRS9DLE9BQU8sQ0FBQyxHQUFHLENBQ1QsZUFBZSxhQUFhLElBQzFCLGFBQWEsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFDekMsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQzFCLHNDQUFzQyxDQUN2QyxDQUFDO3dCQUVGLHVCQUF1QixDQUFDLG1CQUFtQixDQUN6QyxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssQ0FDTixDQUFDO3FCQUNIO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBd0IsRUFBRSxFQUFFOztvQkFDbEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFFeEMsbURBQW1EO29CQUNuRCxNQUFNLGFBQWEsR0FBRyxPQUFBLE9BQU8sQ0FBQyxJQUFJLDBDQUFFLGFBQWEsS0FBSSxTQUFTLENBQUM7b0JBQy9ELE1BQU0sYUFBYSxHQUFHLE9BQUEsT0FBTyxDQUFDLElBQUksMENBQUUsSUFBSSxLQUFJLEVBQUUsQ0FBQztvQkFFL0MsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsZUFBZSxhQUFhLElBQUksYUFBYSxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQzlELENBQUMsQ0FDRixJQUFJLEVBQ0wsc0NBQXNDLENBQ3ZDLENBQUM7b0JBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDckIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUVuQix1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwRSxDQUFDO2FBQ0YsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELG9DQUFvQztRQUNwQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7O1lBMUVGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwSGFuZGxlcixcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cFJlc3BvbnNlLFxyXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgR2xvYmFsUGVyZm9ybWFuY2VMb2dnZXIgfSBmcm9tICcuLi9wZXJmb3JtYW5jZUxvZ2dlckdsb2JhbCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQZXJmb3JtYW5jZU1vbml0b3JJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICAvLyBJZ25vcmEgYXJxdWl2b3MgZGUgYXNzZXRzXHJcbiAgICBpZiAoIXJlcS51cmwuc3RhcnRzV2l0aCgnLi9hc3NldHMnKSkge1xyXG4gICAgICAvLyDwn5S5IFJlY3VwZXJhIGRhZG9zIGRhIHNlc3PDo29cclxuICAgICAgbGV0IHRlbGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdpZFRlbGEnKTtcclxuICAgICAgaWYgKCF0ZWxhKSB7XHJcbiAgICAgICAgdGVsYSA9ICdTRUwwNDEnO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2lkVGVsYScsIHRlbGEpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGNkVXN1YXJpbyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NkVXN1YXJpbycpID8/ICcnO1xyXG5cclxuICAgICAgLy8g8J+UuSBDbG9uYSBhIHJlcXVpc2nDp8OjbyBhZGljaW9uYW5kbyBoZWFkZXJzXHJcbiAgICAgIGNvbnN0IGF1dGhSZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzXHJcbiAgICAgICAgICAuc2V0KCd0ZWxhX2lkJywgdGVsYSlcclxuICAgICAgICAgIC5zZXQoJ3RlbGEnLCAnU0VMMDQxJylcclxuICAgICAgICAgIC5zZXQoJ3VzZXInLCBjZFVzdWFyaW8pLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcblxyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcSkucGlwZShcclxuICAgICAgICB0YXAoe1xyXG4gICAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRlbXBvID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydDtcclxuXHJcbiAgICAgICAgICAgICAgLy8g4pyFIFZlcmlmaWNhw6fDo28gc2VndXJhIGRvIGJvZHkgZSBzdWFzIHByb3ByaWVkYWRlc1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvblR5cGUgPSBhdXRoUmVxLmJvZHk/Lm9wZXJhdGlvblR5cGUgfHwgJ1VOS05PV04nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbk5hbWUgPSBhdXRoUmVxLmJvZHk/Lm5hbWUgfHwgJyc7XHJcblxyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgICAgYCVj8J+foiBbSFRUUF0gJHtvcGVyYXRpb25UeXBlfSAke1xyXG4gICAgICAgICAgICAgICAgICBvcGVyYXRpb25UeXBlID09PSAnU0VMRUNUX0ZVTEwnID8gJycgOiBvcGVyYXRpb25OYW1lXHJcbiAgICAgICAgICAgICAgICB9IC0gJHt0ZW1wby50b0ZpeGVkKDEpfW1zYCxcclxuICAgICAgICAgICAgICAgICdjb2xvcjogIzcwNDhjZmZmOyBmb250LXdlaWdodDogYm9sZDsnXHJcbiAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgR2xvYmFsUGVyZm9ybWFuY2VMb2dnZXIucmVnaXN0ZXJIdHRwUmVxdWVzdChcclxuICAgICAgICAgICAgICAgIGF1dGhSZXEsXHJcbiAgICAgICAgICAgICAgICB0ZW1wbyxcclxuICAgICAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBvID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydDtcclxuXHJcbiAgICAgICAgICAgIC8vIOKchSBWZXJpZmljYcOnw6NvIHNlZ3VyYSBkbyBib2R5IGUgc3VhcyBwcm9wcmllZGFkZXNcclxuICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uVHlwZSA9IGF1dGhSZXEuYm9keT8ub3BlcmF0aW9uVHlwZSB8fCAnVU5LTk9XTic7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbk5hbWUgPSBhdXRoUmVxLmJvZHk/Lm5hbWUgfHwgJyc7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmdyb3VwQ29sbGFwc2VkKFxyXG4gICAgICAgICAgICAgIGAlY/CflLQgW0hUVFBdICR7b3BlcmF0aW9uVHlwZX0gJHtvcGVyYXRpb25OYW1lfSAtICR7dGVtcG8udG9GaXhlZChcclxuICAgICAgICAgICAgICAgIDFcclxuICAgICAgICAgICAgICApfW1zYCxcclxuICAgICAgICAgICAgICAnY29sb3I6ICM3MDQ4Y2ZmZjsgZm9udC13ZWlnaHQ6IGJvbGQ7J1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xyXG5cclxuICAgICAgICAgICAgR2xvYmFsUGVyZm9ybWFuY2VMb2dnZXIucmVnaXN0ZXJIdHRwUmVxdWVzdChhdXRoUmVxLCB0ZW1wbywgdHJ1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVxdWlzacOnw6NvIGRlIGFzc2V0LCBwYXNzYSBkaXJldG9cclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gIH1cclxufVxyXG4iXX0=