@rsdk/core 6.0.0-next.20 → 6.0.0-next.21
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/exceptions/base/platform-exception.absract.d.ts +9 -0
- package/dist/exceptions/base/platform-exception.absract.js +5 -0
- package/dist/exceptions/base/platform-exception.absract.js.map +1 -1
- package/dist/logging/exception-severity-to-log-level.d.ts +3 -0
- package/dist/logging/exception-severity-to-log-level.js +10 -0
- package/dist/logging/exception-severity-to-log-level.js.map +1 -0
- package/dist/logging/index.d.ts +1 -0
- package/dist/logging/index.js +3 -1
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/logging.interceptor.js +7 -1
- package/dist/logging/logging.interceptor.js.map +1 -1
- package/package.json +2 -2
- package/src/exceptions/base/platform-exception.absract.ts +13 -0
- package/src/logging/exception-severity-to-log-level.ts +11 -0
- package/src/logging/index.ts +1 -0
- package/src/logging/logging.interceptor.ts +18 -8
- package/test/logging.interceptor.spec.ts +17 -7
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import type { ExceptionSeverity } from '@rsdk/common';
|
|
1
2
|
export type ExceptionCode = string | number;
|
|
2
3
|
export interface ExceptionsProps<T = any> {
|
|
3
4
|
/**
|
|
4
5
|
* Custom exception code
|
|
5
6
|
*/
|
|
6
7
|
code?: ExceptionCode | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Severity level of exception
|
|
10
|
+
*/
|
|
11
|
+
severity?: ExceptionSeverity | undefined;
|
|
7
12
|
/**
|
|
8
13
|
* Wrapped original error
|
|
9
14
|
*/
|
|
@@ -28,6 +33,10 @@ export declare abstract class PlatformException<T = any> extends Error {
|
|
|
28
33
|
* Required!
|
|
29
34
|
*/
|
|
30
35
|
readonly code: ExceptionCode;
|
|
36
|
+
/**
|
|
37
|
+
* Exception severity
|
|
38
|
+
*/
|
|
39
|
+
readonly severity: ExceptionSeverity;
|
|
31
40
|
/**
|
|
32
41
|
* PlatformException has ability to wrap original errors. Such an option exists
|
|
33
42
|
* in many other languages and frameworks: .NET, Java, Go etc.
|
|
@@ -16,6 +16,10 @@ class PlatformException extends Error {
|
|
|
16
16
|
* Required!
|
|
17
17
|
*/
|
|
18
18
|
code;
|
|
19
|
+
/**
|
|
20
|
+
* Exception severity
|
|
21
|
+
*/
|
|
22
|
+
severity;
|
|
19
23
|
/**
|
|
20
24
|
* PlatformException has ability to wrap original errors. Such an option exists
|
|
21
25
|
* in many other languages and frameworks: .NET, Java, Go etc.
|
|
@@ -36,6 +40,7 @@ class PlatformException extends Error {
|
|
|
36
40
|
super(message);
|
|
37
41
|
this.metatype = this.constructor.name;
|
|
38
42
|
this.code = code;
|
|
43
|
+
this.severity = props?.severity ?? 'error';
|
|
39
44
|
this.cause = props?.cause;
|
|
40
45
|
this.details = props?.details;
|
|
41
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-exception.absract.js","sourceRoot":"","sources":["../../../src/exceptions/base/platform-exception.absract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"platform-exception.absract.js","sourceRoot":"","sources":["../../../src/exceptions/base/platform-exception.absract.ts"],"names":[],"mappings":";;;AA0BA;;;;;GAKG;AACH,MAAsB,iBAA2B,SAAQ,KAAK;IAC5D;;OAEG;IACM,QAAQ,CAAS;IAE1B;;OAEG;IACM,IAAI,CAAgB;IAE7B;;OAEG;IACM,QAAQ,CAAoB;IAErC;;;OAGG;IACe,KAAK,CAAsB;IAE7C;;;;OAIG;IACM,OAAO,CAAgB;IAEhC;;;;OAIG;IACH,YACE,IAAmB,EACnB,OAAe,EACf,KAAwC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,OAAO,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,EAAS;QAC5B,IACE,CAAC,EAAE;YACH,CAAC,CAAC,EAAE,YAAY,iBAAiB,CAAC;YAClC,CAAC,EAAE,CAAC,KAAK;YACT,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,EAC5B,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF;AA3DD,8CA2DC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXCEPTION_SEVERITY_TO_LOG_LEVEL = void 0;
|
|
4
|
+
const logging_1 = require("@rsdk/logging");
|
|
5
|
+
exports.EXCEPTION_SEVERITY_TO_LOG_LEVEL = {
|
|
6
|
+
warn: logging_1.LogLevel.warn,
|
|
7
|
+
error: logging_1.LogLevel.error,
|
|
8
|
+
fatal: logging_1.LogLevel.fatal,
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=exception-severity-to-log-level.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception-severity-to-log-level.js","sourceRoot":"","sources":["../../src/logging/exception-severity-to-log-level.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAE5B,QAAA,+BAA+B,GAGxC;IACF,IAAI,EAAE,kBAAQ,CAAC,IAAI;IACnB,KAAK,EAAE,kBAAQ,CAAC,KAAK;IACrB,KAAK,EAAE,kBAAQ,CAAC,KAAK;CACtB,CAAC"}
|
package/dist/logging/index.d.ts
CHANGED
package/dist/logging/index.js
CHANGED
|
@@ -14,8 +14,10 @@ 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
|
-
exports.LoggingCoreModule = exports.LoggerInstancesModule = exports.LOGGING_RSDK_METADATA_SCOPE = void 0;
|
|
17
|
+
exports.LoggingCoreModule = exports.LoggerInstancesModule = exports.LOGGING_RSDK_METADATA_SCOPE = exports.EXCEPTION_SEVERITY_TO_LOG_LEVEL = void 0;
|
|
18
18
|
__exportStar(require("@rsdk/logging"), exports);
|
|
19
|
+
var exception_severity_to_log_level_1 = require("./exception-severity-to-log-level");
|
|
20
|
+
Object.defineProperty(exports, "EXCEPTION_SEVERITY_TO_LOG_LEVEL", { enumerable: true, get: function () { return exception_severity_to_log_level_1.EXCEPTION_SEVERITY_TO_LOG_LEVEL; } });
|
|
19
21
|
__exportStar(require("./adapters"), exports);
|
|
20
22
|
__exportStar(require("./decorators"), exports);
|
|
21
23
|
__exportStar(require("./formatters"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,kDAAmE;AAA1D,wHAAA,2BAA2B,OAAA;AAEpC,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,qFAAoF;AAA3E,kJAAA,+BAA+B,OAAA;AACxC,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,kDAAmE;AAA1D,wHAAA,2BAA2B,OAAA;AAEpC,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
|
|
@@ -14,11 +14,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.LoggingInterceptor = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const logging_1 = require("@rsdk/logging");
|
|
17
18
|
const zones_1 = require("@rsdk/zones");
|
|
18
19
|
const rxjs_1 = require("rxjs");
|
|
20
|
+
const exceptions_1 = require("../exceptions");
|
|
19
21
|
const protocol_detector_1 = require("../transport/protocol.detector");
|
|
20
22
|
const inject_logger_decorator_1 = require("./decorators/inject-logger.decorator");
|
|
21
23
|
const constants_1 = require("./constants");
|
|
24
|
+
const exception_severity_to_log_level_1 = require("./exception-severity-to-log-level");
|
|
22
25
|
const formatters_1 = require("./formatters");
|
|
23
26
|
const logging_config_1 = require("./logging.config");
|
|
24
27
|
/**
|
|
@@ -83,7 +86,10 @@ let LoggingInterceptor = class LoggingInterceptor {
|
|
|
83
86
|
const request = isExcluded || !['trace', 'debug'].includes(level)
|
|
84
87
|
? requestDetails
|
|
85
88
|
: '[ALREADY LOGGED]';
|
|
86
|
-
|
|
89
|
+
const severity = ex instanceof exceptions_1.PlatformException
|
|
90
|
+
? exception_severity_to_log_level_1.EXCEPTION_SEVERITY_TO_LOG_LEVEL[ex.severity]
|
|
91
|
+
: logging_1.LogLevel.error;
|
|
92
|
+
this.logger.log(severity, `Failed [${protocol.toUpperCase()}] ${path}`, {
|
|
87
93
|
request,
|
|
88
94
|
cause: ex,
|
|
89
95
|
path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../src/logging/logging.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,2CAAoD;
|
|
1
|
+
{"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../src/logging/logging.interceptor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/core",
|
|
3
|
-
"version": "6.0.0-next.
|
|
3
|
+
"version": "6.0.0-next.21",
|
|
4
4
|
"description": "Nestjs based microservice chassis",
|
|
5
5
|
"license": "Apache License 2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"optional": true
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "73d61da23df1dc930049cae7c4324fa66b7680b8"
|
|
54
54
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ExceptionSeverity } from '@rsdk/common';
|
|
2
|
+
|
|
1
3
|
export type ExceptionCode = string | number;
|
|
2
4
|
|
|
3
5
|
export interface ExceptionsProps<T = any> {
|
|
@@ -6,6 +8,11 @@ export interface ExceptionsProps<T = any> {
|
|
|
6
8
|
*/
|
|
7
9
|
code?: ExceptionCode | undefined;
|
|
8
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Severity level of exception
|
|
13
|
+
*/
|
|
14
|
+
severity?: ExceptionSeverity | undefined;
|
|
15
|
+
|
|
9
16
|
/**
|
|
10
17
|
* Wrapped original error
|
|
11
18
|
*/
|
|
@@ -34,6 +41,11 @@ export abstract class PlatformException<T = any> extends Error {
|
|
|
34
41
|
*/
|
|
35
42
|
readonly code: ExceptionCode;
|
|
36
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Exception severity
|
|
46
|
+
*/
|
|
47
|
+
readonly severity: ExceptionSeverity;
|
|
48
|
+
|
|
37
49
|
/**
|
|
38
50
|
* PlatformException has ability to wrap original errors. Such an option exists
|
|
39
51
|
* in many other languages and frameworks: .NET, Java, Go etc.
|
|
@@ -60,6 +72,7 @@ export abstract class PlatformException<T = any> extends Error {
|
|
|
60
72
|
super(message);
|
|
61
73
|
this.metatype = this.constructor.name;
|
|
62
74
|
this.code = code;
|
|
75
|
+
this.severity = props?.severity ?? 'error';
|
|
63
76
|
this.cause = props?.cause;
|
|
64
77
|
this.details = props?.details;
|
|
65
78
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ExceptionSeverity } from '@rsdk/common';
|
|
2
|
+
import { LogLevel } from '@rsdk/logging';
|
|
3
|
+
|
|
4
|
+
export const EXCEPTION_SEVERITY_TO_LOG_LEVEL: Record<
|
|
5
|
+
ExceptionSeverity,
|
|
6
|
+
LogLevel
|
|
7
|
+
> = {
|
|
8
|
+
warn: LogLevel.warn,
|
|
9
|
+
error: LogLevel.error,
|
|
10
|
+
fatal: LogLevel.fatal,
|
|
11
|
+
};
|
package/src/logging/index.ts
CHANGED
|
@@ -4,16 +4,17 @@ import type {
|
|
|
4
4
|
NestInterceptor,
|
|
5
5
|
} from '@nestjs/common';
|
|
6
6
|
import { Inject, Injectable } from '@nestjs/common';
|
|
7
|
-
import { ILogger } from '@rsdk/logging';
|
|
7
|
+
import { ILogger, LogLevel } from '@rsdk/logging';
|
|
8
8
|
import { Zone } from '@rsdk/zones';
|
|
9
9
|
import type { Observable } from 'rxjs';
|
|
10
10
|
import { catchError, tap, throwError } from 'rxjs';
|
|
11
11
|
|
|
12
|
-
import { PipelineException } from '../exceptions';
|
|
12
|
+
import { PipelineException, PlatformException } from '../exceptions';
|
|
13
13
|
import { ProtocolDetector } from '../transport/protocol.detector';
|
|
14
14
|
|
|
15
15
|
import { InjectLogger } from './decorators/inject-logger.decorator';
|
|
16
16
|
import { LOG_FORMATTERS } from './constants';
|
|
17
|
+
import { EXCEPTION_SEVERITY_TO_LOG_LEVEL } from './exception-severity-to-log-level';
|
|
17
18
|
import { DefaultLogFormatter, LogFormatter } from './formatters';
|
|
18
19
|
import { LoggingConfig } from './logging.config';
|
|
19
20
|
|
|
@@ -96,12 +97,21 @@ export class LoggingInterceptor implements NestInterceptor {
|
|
|
96
97
|
? requestDetails
|
|
97
98
|
: '[ALREADY LOGGED]';
|
|
98
99
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
100
|
+
const severity: LogLevel =
|
|
101
|
+
ex instanceof PlatformException
|
|
102
|
+
? EXCEPTION_SEVERITY_TO_LOG_LEVEL[ex.severity]
|
|
103
|
+
: LogLevel.error;
|
|
104
|
+
|
|
105
|
+
this.logger.log(
|
|
106
|
+
severity,
|
|
107
|
+
`Failed [${protocol.toUpperCase()}] ${path}`,
|
|
108
|
+
{
|
|
109
|
+
request,
|
|
110
|
+
cause: ex,
|
|
111
|
+
path,
|
|
112
|
+
zone,
|
|
113
|
+
},
|
|
114
|
+
);
|
|
105
115
|
|
|
106
116
|
return throwError(() => ex);
|
|
107
117
|
}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ExecutionContext } from '@nestjs/common';
|
|
2
2
|
import type { ILogger } from '@rsdk/logging';
|
|
3
|
-
import { DEFAULT_LEVEL } from '@rsdk/logging';
|
|
3
|
+
import { DEFAULT_LEVEL, LogLevel } from '@rsdk/logging';
|
|
4
4
|
import { ApiZone } from '@rsdk/zones';
|
|
5
5
|
import { of, throwError } from 'rxjs';
|
|
6
6
|
|
|
@@ -113,10 +113,18 @@ describe('LoggingInterceptor', () => {
|
|
|
113
113
|
complete: () => {
|
|
114
114
|
/* eslint-disable prettier/prettier */
|
|
115
115
|
expect(mockLogger.debug).toHaveBeenCalledTimes(2);
|
|
116
|
-
expect(mockLogger.debug).toHaveBeenNthCalledWith(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
expect(mockLogger.debug).toHaveBeenNthCalledWith(
|
|
117
|
+
1,
|
|
118
|
+
'>>> Received [TEST] /test/path',
|
|
119
|
+
expect.any(Object),
|
|
120
|
+
);
|
|
121
|
+
expect(mockLogger.debug).toHaveBeenNthCalledWith(
|
|
122
|
+
2,
|
|
123
|
+
'<<< Handled [TEST] /test/path',
|
|
124
|
+
expect.objectContaining({
|
|
125
|
+
executionTime: expect.any(Number),
|
|
126
|
+
}),
|
|
127
|
+
);
|
|
120
128
|
/* eslint-enable prettier/prettier */
|
|
121
129
|
|
|
122
130
|
done();
|
|
@@ -250,7 +258,8 @@ describe('LoggingInterceptor', () => {
|
|
|
250
258
|
.intercept(mockContext, { handle: () => throwError(() => error) })
|
|
251
259
|
.subscribe({
|
|
252
260
|
error: () => {
|
|
253
|
-
expect(mockLogger.
|
|
261
|
+
expect(mockLogger.log).toHaveBeenCalledWith(
|
|
262
|
+
LogLevel.error,
|
|
254
263
|
'Failed [TEST] /test/path',
|
|
255
264
|
expect.objectContaining({
|
|
256
265
|
request: {},
|
|
@@ -276,7 +285,8 @@ describe('LoggingInterceptor', () => {
|
|
|
276
285
|
.intercept(mockContext, { handle: () => throwError(() => error) })
|
|
277
286
|
.subscribe({
|
|
278
287
|
error: () => {
|
|
279
|
-
expect(mockLogger.
|
|
288
|
+
expect(mockLogger.log).toHaveBeenCalledWith(
|
|
289
|
+
LogLevel.error,
|
|
280
290
|
'Failed [TEST] /test/path',
|
|
281
291
|
expect.objectContaining({
|
|
282
292
|
request: '[ALREADY LOGGED]',
|