nest-monitor 0.2.8 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decorators/info.decorator.d.ts +1 -0
- package/dist/decorators/info.decorator.js +8 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +6 -0
- package/dist/interceptors/request-logging.interceptor.d.ts +5 -0
- package/dist/interceptors/request-logging.interceptor.js +39 -0
- package/package.json +13 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Info(): MethodDecorator & ClassDecorator;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Info = Info;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const request_logging_interceptor_1 = require("../interceptors/request-logging.interceptor");
|
|
6
|
+
function Info() {
|
|
7
|
+
return (0, common_1.UseInterceptors)(request_logging_interceptor_1.RequestLoggingInterceptor);
|
|
8
|
+
}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestLoggingInterceptor = exports.Info = void 0;
|
|
4
|
+
var info_decorator_1 = require("./decorators/info.decorator");
|
|
5
|
+
Object.defineProperty(exports, "Info", { enumerable: true, get: function () { return info_decorator_1.Info; } });
|
|
6
|
+
var request_logging_interceptor_1 = require("./interceptors/request-logging.interceptor");
|
|
7
|
+
Object.defineProperty(exports, "RequestLoggingInterceptor", { enumerable: true, get: function () { return request_logging_interceptor_1.RequestLoggingInterceptor; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export declare class RequestLoggingInterceptor implements NestInterceptor {
|
|
4
|
+
intercept(context: ExecutionContext, next: CallHandler): Observable<unknown> | Promise<Observable<unknown>>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RequestLoggingInterceptor = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const rxjs_1 = require("rxjs");
|
|
12
|
+
let RequestLoggingInterceptor = class RequestLoggingInterceptor {
|
|
13
|
+
intercept(context, next) {
|
|
14
|
+
const now = Date.now();
|
|
15
|
+
const request = context.switchToHttp().getRequest();
|
|
16
|
+
const userAgent = request.headers['user-agent'] || 'Unknown User Agent';
|
|
17
|
+
const method = request.method;
|
|
18
|
+
const url = request.url;
|
|
19
|
+
const query = request.query || 'Unknown params';
|
|
20
|
+
const body = request.body || 'Unknown body';
|
|
21
|
+
console.log(`[${method}] ${url} - Начало запроса, User-Agent: ${userAgent}`);
|
|
22
|
+
return next.handle().pipe((0, rxjs_1.tap)(() => {
|
|
23
|
+
const duration = Date.now() - now;
|
|
24
|
+
console.log(`[${method}] ${url} - Запрос завершен за ${duration}мс.`);
|
|
25
|
+
console.log('--- Метрики запроса ---');
|
|
26
|
+
console.log(` Метод: ${method}`);
|
|
27
|
+
console.log(` URL: ${url}`);
|
|
28
|
+
console.log(` User Agent: ${userAgent}`);
|
|
29
|
+
console.log(` Params: ${JSON.stringify(query)}`);
|
|
30
|
+
console.log(` Body: ${JSON.stringify(body)}`);
|
|
31
|
+
console.log(` Время выполнения: ${duration}мс`);
|
|
32
|
+
console.log('------------------------');
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.RequestLoggingInterceptor = RequestLoggingInterceptor;
|
|
37
|
+
exports.RequestLoggingInterceptor = RequestLoggingInterceptor = __decorate([
|
|
38
|
+
(0, common_1.Injectable)()
|
|
39
|
+
], RequestLoggingInterceptor);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nest-monitor",
|
|
3
3
|
"type": "commonjs",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.9",
|
|
5
5
|
"description": "Библиотека для сбора метрик с высоконагруженного приложения на Nest.js",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"lint": "eslint \"src/**/*.ts\"",
|
|
13
13
|
"lint:fix": "eslint \"src/**/*.ts\" --fix",
|
|
14
14
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
15
|
-
"hook:path": "git config core.hooksPath .hooks || echo 'Not in a git repo'",
|
|
15
|
+
"hook:path": "git config core.hooksPath .git-hooks || echo 'Not in a git repo'",
|
|
16
16
|
"version:update": "node scripts/version-updater.js",
|
|
17
17
|
"version:major": "node scripts/version-updater.js major",
|
|
18
18
|
"version:minor": "node scripts/version-updater.js minor",
|
|
@@ -57,5 +57,15 @@
|
|
|
57
57
|
"dist",
|
|
58
58
|
"LICENSE",
|
|
59
59
|
"README.md"
|
|
60
|
-
]
|
|
60
|
+
],
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"lint-staged": "^16.2.7",
|
|
63
|
+
"typeorm": "^0.3.27"
|
|
64
|
+
},
|
|
65
|
+
"lint-staged": {
|
|
66
|
+
"*.{ts,tsx,js,jsx}": [
|
|
67
|
+
"eslint --cache --fix",
|
|
68
|
+
"prettier --write"
|
|
69
|
+
]
|
|
70
|
+
}
|
|
61
71
|
}
|