UNPKG

performance-monitor-logger

Version:
58 lines 8.05 kB
import { __awaiter } from "tslib"; // shared/performanceLoggerGlobal.ts import { createPerformanceLogger } from './log-performatico'; export const GlobalPerformanceLogger = createPerformanceLogger('GLOBAL'); export const PerformanceMonitor = PerformanceMonitorFactory(GlobalPerformanceLogger); function PerformanceMonitorFactory(globalLogger) { return function PerformanceMonitor(options) { return function (target, propertyKey, descriptor) { const originalMethod = descriptor.value; let opName; let customMethod; let customThresholds; if (typeof options === 'object' && options !== null) { opName = options.name || propertyKey; customMethod = options.method; customThresholds = { ok: options.ok, lento: options.lento, critico: options.critico, }; } else if (typeof options === 'function') { opName = options.name || propertyKey; customMethod = options; } else if (typeof options === 'string') { opName = options; } else { opName = propertyKey; } descriptor.value = function (...args) { return __awaiter(this, void 0, void 0, function* () { const instanceLogger = this .performanceLogger; const logger = instanceLogger || globalLogger; if (logger) { logger.startTimer(opName); try { const methodToCall = customMethod || originalMethod; const result = yield methodToCall.apply(this, args); return result; } finally { logger.endTimer(opName, undefined, customThresholds); } } else { const methodToCall = customMethod || originalMethod; return yield methodToCall.apply(this, args); } }); }; return descriptor; }; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2VMb2dnZXJHbG9iYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wZXJmb3JtYW5jZS1tb25pdG9yLWxvZ2dlci9zcmMvbGliL3BlcmZvcm1hbmNlTG9nZ2VyR2xvYmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFFLHVCQUF1QixFQUFvQixNQUFNLG9CQUFvQixDQUFDO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUNsQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FDekQsdUJBQXVCLENBQ3hCLENBQUM7QUFFRixTQUFTLHlCQUF5QixDQUFDLFlBQThCO0lBQy9ELE9BQU8sU0FBUyxrQkFBa0IsQ0FDaEMsT0FTVTtRQUVWLE9BQU8sVUFDTCxNQUFXLEVBQ1gsV0FBbUIsRUFDbkIsVUFBOEI7WUFFOUIsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUV4QyxJQUFJLE1BQWMsQ0FBQztZQUNuQixJQUFJLFlBQWtDLENBQUM7WUFDdkMsSUFBSSxnQkFFUyxDQUFDO1lBRWQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLElBQUksRUFBRTtnQkFDbkQsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDO2dCQUNyQyxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDOUIsZ0JBQWdCLEdBQUc7b0JBQ2pCLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtvQkFDZCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7b0JBQ3BCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztpQkFDekIsQ0FBQzthQUNIO2lCQUFNLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO2dCQUN4QyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUM7Z0JBQ3JDLFlBQVksR0FBRyxPQUFPLENBQUM7YUFDeEI7aUJBQU0sSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7Z0JBQ3RDLE1BQU0sR0FBRyxPQUFPLENBQUM7YUFDbEI7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLFdBQVcsQ0FBQzthQUN0QjtZQUVELFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBZ0IsR0FBRyxJQUFXOztvQkFDL0MsTUFBTSxjQUFjLEdBQUksSUFBWTt5QkFDakMsaUJBQXFDLENBQUM7b0JBQ3pDLE1BQU0sTUFBTSxHQUFHLGNBQWMsSUFBSSxZQUFZLENBQUM7b0JBRTlDLElBQUksTUFBTSxFQUFFO3dCQUNWLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFCLElBQUk7NEJBQ0YsTUFBTSxZQUFZLEdBQUcsWUFBWSxJQUFJLGNBQWMsQ0FBQzs0QkFDcEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFDcEQsT0FBTyxNQUFNLENBQUM7eUJBQ2Y7Z0NBQVM7NEJBQ1IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7eUJBQ3REO3FCQUNGO3lCQUFNO3dCQUNMLE1BQU0sWUFBWSxHQUFHLFlBQVksSUFBSSxjQUFjLENBQUM7d0JBQ3BELE9BQU8sTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDN0M7Z0JBQ0gsQ0FBQzthQUFBLENBQUM7WUFFRixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc2hhcmVkL3BlcmZvcm1hbmNlTG9nZ2VyR2xvYmFsLnRzXHJcbmltcG9ydCB7IGNyZWF0ZVBlcmZvcm1hbmNlTG9nZ2VyLCBMb2dzUGVyZm9ybWF0aWNvIH0gZnJvbSAnLi9sb2ctcGVyZm9ybWF0aWNvJztcclxuXHJcbmV4cG9ydCBjb25zdCBHbG9iYWxQZXJmb3JtYW5jZUxvZ2dlcjogTG9nc1BlcmZvcm1hdGljbyA9XHJcbiAgY3JlYXRlUGVyZm9ybWFuY2VMb2dnZXIoJ0dMT0JBTCcpO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBlcmZvcm1hbmNlTW9uaXRvciA9IFBlcmZvcm1hbmNlTW9uaXRvckZhY3RvcnkoXHJcbiAgR2xvYmFsUGVyZm9ybWFuY2VMb2dnZXJcclxuKTtcclxuXHJcbmZ1bmN0aW9uIFBlcmZvcm1hbmNlTW9uaXRvckZhY3RvcnkoZ2xvYmFsTG9nZ2VyOiBMb2dzUGVyZm9ybWF0aWNvKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIFBlcmZvcm1hbmNlTW9uaXRvcihcclxuICAgIG9wdGlvbnM/OlxyXG4gICAgICB8IHtcclxuICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICAgICAgICBtZXRob2Q/OiBGdW5jdGlvbjtcclxuICAgICAgICAgIG9rPzogbnVtYmVyO1xyXG4gICAgICAgICAgbGVudG8/OiBudW1iZXI7XHJcbiAgICAgICAgICBjcml0aWNvPzogbnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfCBGdW5jdGlvblxyXG4gICAgICB8IHN0cmluZ1xyXG4gICkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChcclxuICAgICAgdGFyZ2V0OiBhbnksXHJcbiAgICAgIHByb3BlcnR5S2V5OiBzdHJpbmcsXHJcbiAgICAgIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvclxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcclxuXHJcbiAgICAgIGxldCBvcE5hbWU6IHN0cmluZztcclxuICAgICAgbGV0IGN1c3RvbU1ldGhvZDogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XHJcbiAgICAgIGxldCBjdXN0b21UaHJlc2hvbGRzOlxyXG4gICAgICAgIHwgeyBvaz86IG51bWJlcjsgbGVudG8/OiBudW1iZXI7IGNyaXRpY28/OiBudW1iZXIgfVxyXG4gICAgICAgIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnb2JqZWN0JyAmJiBvcHRpb25zICE9PSBudWxsKSB7XHJcbiAgICAgICAgb3BOYW1lID0gb3B0aW9ucy5uYW1lIHx8IHByb3BlcnR5S2V5O1xyXG4gICAgICAgIGN1c3RvbU1ldGhvZCA9IG9wdGlvbnMubWV0aG9kO1xyXG4gICAgICAgIGN1c3RvbVRocmVzaG9sZHMgPSB7XHJcbiAgICAgICAgICBvazogb3B0aW9ucy5vayxcclxuICAgICAgICAgIGxlbnRvOiBvcHRpb25zLmxlbnRvLFxyXG4gICAgICAgICAgY3JpdGljbzogb3B0aW9ucy5jcml0aWNvLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBvcE5hbWUgPSBvcHRpb25zLm5hbWUgfHwgcHJvcGVydHlLZXk7XHJcbiAgICAgICAgY3VzdG9tTWV0aG9kID0gb3B0aW9ucztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBvcE5hbWUgPSBvcHRpb25zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG9wTmFtZSA9IHByb3BlcnR5S2V5O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICAgICAgY29uc3QgaW5zdGFuY2VMb2dnZXIgPSAodGhpcyBhcyBhbnkpXHJcbiAgICAgICAgICAucGVyZm9ybWFuY2VMb2dnZXIgYXMgTG9nc1BlcmZvcm1hdGljbztcclxuICAgICAgICBjb25zdCBsb2dnZXIgPSBpbnN0YW5jZUxvZ2dlciB8fCBnbG9iYWxMb2dnZXI7XHJcblxyXG4gICAgICAgIGlmIChsb2dnZXIpIHtcclxuICAgICAgICAgIGxvZ2dlci5zdGFydFRpbWVyKG9wTmFtZSk7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2RUb0NhbGwgPSBjdXN0b21NZXRob2QgfHwgb3JpZ2luYWxNZXRob2Q7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1ldGhvZFRvQ2FsbC5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIGxvZ2dlci5lbmRUaW1lcihvcE5hbWUsIHVuZGVmaW5lZCwgY3VzdG9tVGhyZXNob2xkcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IG1ldGhvZFRvQ2FsbCA9IGN1c3RvbU1ldGhvZCB8fCBvcmlnaW5hbE1ldGhvZDtcclxuICAgICAgICAgIHJldHVybiBhd2FpdCBtZXRob2RUb0NhbGwuYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuIl19