@mondart/nestjs-common-module 1.1.57 → 1.1.59

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.
@@ -1,6 +1,7 @@
1
1
  import { ArgumentsHost, ExceptionFilter } from '@nestjs/common';
2
2
  import { Response } from 'express';
3
3
  export declare class GlobalExceptionFilter implements ExceptionFilter {
4
- constructor();
4
+ private sentryEnable;
5
+ constructor(sentryEnable?: boolean);
5
6
  catch(exception: any, host: ArgumentsHost): import("rxjs").Observable<never> | Response<any, Record<string, any>>;
6
7
  }
@@ -16,9 +16,14 @@ const dto_1 = require("../dto");
16
16
  const enums_1 = require("../enums");
17
17
  const helpers_1 = require("../helpers");
18
18
  const exceptions = require("@nestjs/common/exceptions");
19
+ const Sentry = require("@sentry/nestjs");
19
20
  let GlobalExceptionFilter = class GlobalExceptionFilter {
20
- constructor() { }
21
+ constructor(sentryEnable = false) {
22
+ this.sentryEnable = sentryEnable;
23
+ }
21
24
  catch(exception, host) {
25
+ if (this.sentryEnable)
26
+ Sentry.captureException(exception, exception?.response);
22
27
  const context = host.switchToHttp();
23
28
  const logger = new common_1.Logger('GlobalExceptionFilter', { timestamp: true });
24
29
  const type = host?.getType();
@@ -74,5 +79,5 @@ let GlobalExceptionFilter = class GlobalExceptionFilter {
74
79
  exports.GlobalExceptionFilter = GlobalExceptionFilter;
75
80
  exports.GlobalExceptionFilter = GlobalExceptionFilter = __decorate([
76
81
  (0, common_1.Catch)(),
77
- __metadata("design:paramtypes", [])
82
+ __metadata("design:paramtypes", [Boolean])
78
83
  ], GlobalExceptionFilter);
@@ -7,7 +7,7 @@ const rxjs_1 = require("rxjs");
7
7
  function RxjsCatchErrorHelper() {
8
8
  return (0, rxjs_1.catchError)((err) => {
9
9
  if (exceptions[err?.name])
10
- throw new exceptions[err.name](err);
10
+ throw new exceptions[err.name](err?.response);
11
11
  else if (Object.keys(strapiApplicationErrors).includes(err?.name))
12
12
  throw new strapiApplicationErrors[err?.name](err?.response);
13
13
  else
@@ -1,6 +1,5 @@
1
1
  import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
2
2
  import { Observable } from 'rxjs';
3
- export declare class HttpLoggerInterceptor implements NestInterceptor {
4
- private logger;
3
+ export declare class GlobalLoggerInterceptor implements NestInterceptor {
5
4
  intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
6
5
  }
@@ -0,0 +1,59 @@
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.GlobalLoggerInterceptor = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const rxjs_1 = require("rxjs");
12
+ let GlobalLoggerInterceptor = class GlobalLoggerInterceptor {
13
+ intercept(context, next) {
14
+ const host = context.getType();
15
+ if (host === 'http') {
16
+ const logger = new common_1.Logger('HTTP');
17
+ const request = context.switchToHttp().getRequest();
18
+ const response = context.switchToHttp().getResponse();
19
+ const { method, originalUrl } = request;
20
+ const startTime = Date.now();
21
+ return next.handle().pipe((0, rxjs_1.tap)({
22
+ next: () => {
23
+ const { statusCode } = response;
24
+ const responseTime = Date.now() - startTime;
25
+ logger.log(`${method} ${originalUrl} ${statusCode} - ${responseTime}ms`);
26
+ },
27
+ error: (err) => {
28
+ const { statusCode } = err.response;
29
+ const responseTime = Date.now() - startTime;
30
+ logger.warn(`${method} ${originalUrl} ${statusCode} - ${responseTime}ms`);
31
+ },
32
+ }));
33
+ }
34
+ if (host === 'rpc') {
35
+ const logger = new common_1.Logger('RPC');
36
+ const rpcContext = context.switchToRpc().getContext();
37
+ const requestData = context.switchToRpc().getData();
38
+ const topic = rpcContext.getArgByIndex(2);
39
+ const eventLogMessage = requestData
40
+ ? `${topic} - event_source: ${requestData?.event_source} - event_key: ${requestData?.event_key} - model: ${requestData?.model}`
41
+ : `${topic}`;
42
+ const startTime = Date.now();
43
+ return next.handle().pipe((0, rxjs_1.tap)({
44
+ next: () => {
45
+ const responseTime = Date.now() - startTime;
46
+ logger.log(`${eventLogMessage} - ${responseTime}ms`);
47
+ },
48
+ error: (err) => {
49
+ const responseTime = Date.now() - startTime;
50
+ logger.log(`${eventLogMessage} - ${responseTime}ms`);
51
+ },
52
+ }));
53
+ }
54
+ }
55
+ };
56
+ exports.GlobalLoggerInterceptor = GlobalLoggerInterceptor;
57
+ exports.GlobalLoggerInterceptor = GlobalLoggerInterceptor = __decorate([
58
+ (0, common_1.Injectable)()
59
+ ], GlobalLoggerInterceptor);
@@ -1 +1 @@
1
- export * from './http-logger.interceptor';
1
+ export * from './global-logger.interceptor';
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./http-logger.interceptor"), exports);
17
+ __exportStar(require("./global-logger.interceptor"), exports);