@rsdk/core 6.0.0-next.20 → 6.0.0-next.22

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,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":";;;AAmBA;;;;;GAKG;AACH,MAAsB,iBAA2B,SAAQ,KAAK;IAC5D;;OAEG;IACM,QAAQ,CAAS;IAE1B;;OAEG;IACM,IAAI,CAAgB;IAE7B;;;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,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;AArDD,8CAqDC"}
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"}
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ export { PlatformContext } from './platform.context';
15
15
  export * from './config';
16
16
  export * from './exceptions';
17
17
  export * from './exceptions.handling';
18
- export { InjectLogger, LogFormatter, LogLevel } from './logging';
18
+ export { InjectLogger, LogFormatter, LogLevel, EXCEPTION_SEVERITY_TO_LOG_LEVEL, } from './logging';
19
19
  export { AnyMetric, Counter, Gauge, Histogram, Metric, MetricsModule, Summary, register, } from './metrics';
20
20
  export { PlatformApp } from './app/platform.app';
21
21
  export * from './types';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ 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.FsPathParser = exports.TimespanParser = exports.UrlParser = exports.StringParser = exports.SizeParser = exports.NumberParser = exports.JsonParser = exports.IntParser = exports.EnumParser = exports.BoolParser = exports.ArrayParser = exports.TracingHeaders = exports.RequestIdGenStrategy = exports.generateDefault = exports.withPrefix = exports.PlatformApp = exports.register = exports.Summary = exports.MetricsModule = exports.Metric = exports.Histogram = exports.Gauge = exports.Counter = exports.LogLevel = exports.InjectLogger = exports.PlatformContext = exports.ConfigTag = exports.CheckResult = exports.Indicator = exports.getLoggerToken = exports.HealthChecksService = exports.PingIndicator = exports.FileSystemIndicator = exports.NoSpan = exports.Span = exports.ProtocolDetector = exports.Manifest = exports.APP_SCOPE = void 0;
17
+ exports.FsPathParser = exports.TimespanParser = exports.UrlParser = exports.StringParser = exports.SizeParser = exports.NumberParser = exports.JsonParser = exports.IntParser = exports.EnumParser = exports.BoolParser = exports.ArrayParser = exports.TracingHeaders = exports.RequestIdGenStrategy = exports.generateDefault = exports.withPrefix = exports.PlatformApp = exports.register = exports.Summary = exports.MetricsModule = exports.Metric = exports.Histogram = exports.Gauge = exports.Counter = exports.EXCEPTION_SEVERITY_TO_LOG_LEVEL = exports.LogLevel = exports.InjectLogger = exports.PlatformContext = exports.ConfigTag = exports.CheckResult = exports.Indicator = exports.getLoggerToken = exports.HealthChecksService = exports.PingIndicator = exports.FileSystemIndicator = exports.NoSpan = exports.Span = exports.ProtocolDetector = exports.Manifest = exports.APP_SCOPE = void 0;
18
18
  require("./unhandled-rejection.handler");
19
19
  var app_metadata_const_1 = require("./app-metadata/app-metadata.const");
20
20
  Object.defineProperty(exports, "APP_SCOPE", { enumerable: true, get: function () { return app_metadata_const_1.APP_SCOPE; } });
@@ -46,6 +46,7 @@ __exportStar(require("./exceptions.handling"), exports);
46
46
  var logging_1 = require("./logging");
47
47
  Object.defineProperty(exports, "InjectLogger", { enumerable: true, get: function () { return logging_1.InjectLogger; } });
48
48
  Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return logging_1.LogLevel; } });
49
+ Object.defineProperty(exports, "EXCEPTION_SEVERITY_TO_LOG_LEVEL", { enumerable: true, get: function () { return logging_1.EXCEPTION_SEVERITY_TO_LOG_LEVEL; } });
49
50
  var metrics_1 = require("./metrics");
50
51
  Object.defineProperty(exports, "Counter", { enumerable: true, get: function () { return metrics_1.Counter; } });
51
52
  Object.defineProperty(exports, "Gauge", { enumerable: true, get: function () { return metrics_1.Gauge; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuC;AAEvC,wEAA8D;AAArD,+GAAA,SAAS,OAAA;AAElB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,mEAAiE;AAAxD,qHAAA,gBAAgB,OAAA;AAEzB,qCAAgE;AAAhC,+FAAA,IAAI,OAAA;AAAE,iGAAA,MAAM,OAAA;AAE5C,oEAKsC;AAHpC,0HAAA,mBAAmB,OAAA;AAEnB,oHAAA,aAAa,OAAA;AAGf,0DAA8D;AAArD,qHAAA,mBAAmB,OAAA;AAI5B,6CAAmD;AAA1C,yGAAA,cAAc,OAAA;AAEvB,6EAAkE;AAAzD,gHAAA,SAAS,OAAA;AAIlB,4CAA+C;AAAtC,sGAAA,WAAW,OAAA;AAEpB,sDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAElB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,2CAAyB;AAEzB,+CAA6B;AAE7B,wDAAsC;AAEtC,qCAAiE;AAAxD,uGAAA,YAAY,OAAA;AAAgB,mGAAA,QAAQ,OAAA;AAE7C,qCASmB;AAPjB,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,oGAAA,SAAS,OAAA;AACT,iGAAA,MAAM,OAAA;AACN,wGAAA,aAAa,OAAA;AACb,kGAAA,OAAO,OAAA;AACP,mGAAA,QAAQ,OAAA;AAGV,mDAAiD;AAAxC,2GAAA,WAAW,OAAA;AAEpB,0CAAwB;AAExB,4DAA0C;AAE1C,oEAAkD;AAElD,qCAKmB;AAJjB,qGAAA,UAAU,OAAA;AACV,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AACpB,yGAAA,cAAc,OAAA;AAGhB;;GAEG;AAEH,uCAkCsB;AAjCpB,6CAA6C;AAC7C,mDAAmD;AACnD,qGAAA,WAAW,OAAA;AAEX,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,mGAAA,SAAS,OAAA;AAET,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,sGAAA,YAAY,OAAA;AAKZ,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,sGAAA,YAAY,OAAA;AAEZ,mDAAmD;AACnD,mGAAA,SAAS,OAAA;AAET,mDAAmD;AACnD,wGAAA,cAAc,OAAA;AAGhB,iDAI2B;AAHzB,2DAA2D;AAC3D,wDAAwD;AACxD,2GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuC;AAEvC,wEAA8D;AAArD,+GAAA,SAAS,OAAA;AAElB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,mEAAiE;AAAxD,qHAAA,gBAAgB,OAAA;AAEzB,qCAAgE;AAAhC,+FAAA,IAAI,OAAA;AAAE,iGAAA,MAAM,OAAA;AAE5C,oEAKsC;AAHpC,0HAAA,mBAAmB,OAAA;AAEnB,oHAAA,aAAa,OAAA;AAGf,0DAA8D;AAArD,qHAAA,mBAAmB,OAAA;AAI5B,6CAAmD;AAA1C,yGAAA,cAAc,OAAA;AAEvB,6EAAkE;AAAzD,gHAAA,SAAS,OAAA;AAIlB,4CAA+C;AAAtC,sGAAA,WAAW,OAAA;AAEpB,sDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAElB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,2CAAyB;AAEzB,+CAA6B;AAE7B,wDAAsC;AAEtC,qCAKmB;AAJjB,uGAAA,YAAY,OAAA;AAEZ,mGAAA,QAAQ,OAAA;AACR,0HAAA,+BAA+B,OAAA;AAGjC,qCASmB;AAPjB,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,oGAAA,SAAS,OAAA;AACT,iGAAA,MAAM,OAAA;AACN,wGAAA,aAAa,OAAA;AACb,kGAAA,OAAO,OAAA;AACP,mGAAA,QAAQ,OAAA;AAGV,mDAAiD;AAAxC,2GAAA,WAAW,OAAA;AAEpB,0CAAwB;AAExB,4DAA0C;AAE1C,oEAAkD;AAElD,qCAKmB;AAJjB,qGAAA,UAAU,OAAA;AACV,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AACpB,yGAAA,cAAc,OAAA;AAGhB;;GAEG;AAEH,uCAkCsB;AAjCpB,6CAA6C;AAC7C,mDAAmD;AACnD,qGAAA,WAAW,OAAA;AAEX,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,mGAAA,SAAS,OAAA;AAET,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,sGAAA,YAAY,OAAA;AAKZ,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,sGAAA,YAAY,OAAA;AAEZ,mDAAmD;AACnD,mGAAA,SAAS,OAAA;AAET,mDAAmD;AACnD,wGAAA,cAAc,OAAA;AAGhB,iDAI2B;AAHzB,2DAA2D;AAC3D,wDAAwD;AACxD,2GAAA,YAAY,OAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ExceptionSeverity } from '@rsdk/common';
2
+ import { LogLevel } from '@rsdk/logging';
3
+ export declare const EXCEPTION_SEVERITY_TO_LOG_LEVEL: Record<ExceptionSeverity, LogLevel>;
@@ -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"}
@@ -1,4 +1,5 @@
1
1
  export * from '@rsdk/logging';
2
+ export { EXCEPTION_SEVERITY_TO_LOG_LEVEL } from './exception-severity-to-log-level';
2
3
  export * from './adapters';
3
4
  export * from './decorators';
4
5
  export * from './formatters';
@@ -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"}
@@ -19,6 +19,7 @@ const rxjs_1 = require("rxjs");
19
19
  const protocol_detector_1 = require("../transport/protocol.detector");
20
20
  const inject_logger_decorator_1 = require("./decorators/inject-logger.decorator");
21
21
  const constants_1 = require("./constants");
22
+ const exception_severity_to_log_level_1 = require("./exception-severity-to-log-level");
22
23
  const formatters_1 = require("./formatters");
23
24
  const logging_config_1 = require("./logging.config");
24
25
  /**
@@ -83,7 +84,7 @@ let LoggingInterceptor = class LoggingInterceptor {
83
84
  const request = isExcluded || !['trace', 'debug'].includes(level)
84
85
  ? requestDetails
85
86
  : '[ALREADY LOGGED]';
86
- this.logger.error(`Failed [${protocol.toUpperCase()}] ${path}`, {
87
+ this.logger.log(exception_severity_to_log_level_1.EXCEPTION_SEVERITY_TO_LOG_LEVEL[ex.severity], `Failed [${protocol.toUpperCase()}] ${path}`, {
87
88
  request,
88
89
  cause: ex,
89
90
  path,
@@ -1 +1 @@
1
- {"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../src/logging/logging.interceptor.ts"],"names":[],"mappings":"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"}
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.20",
3
+ "version": "6.0.0-next.22",
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": "8967e1d9b691808f5e0b4c6d6dff0fefae3b2c32"
53
+ "gitHead": "26f12f1c32584ae1594cc00a2ea886f5bf8c3736"
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
  }
package/src/index.ts CHANGED
@@ -37,7 +37,12 @@ export * from './exceptions';
37
37
 
38
38
  export * from './exceptions.handling';
39
39
 
40
- export { InjectLogger, LogFormatter, LogLevel } from './logging';
40
+ export {
41
+ InjectLogger,
42
+ LogFormatter,
43
+ LogLevel,
44
+ EXCEPTION_SEVERITY_TO_LOG_LEVEL,
45
+ } from './logging';
41
46
 
42
47
  export {
43
48
  AnyMetric,
@@ -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
+ };
@@ -1,4 +1,5 @@
1
1
  export * from '@rsdk/logging';
2
+ export { EXCEPTION_SEVERITY_TO_LOG_LEVEL } from './exception-severity-to-log-level';
2
3
  export * from './adapters';
3
4
  export * from './decorators';
4
5
  export * from './formatters';
@@ -14,6 +14,7 @@ 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,16 @@ export class LoggingInterceptor implements NestInterceptor {
96
97
  ? requestDetails
97
98
  : '[ALREADY LOGGED]';
98
99
 
99
- this.logger.error(`Failed [${protocol.toUpperCase()}] ${path}`, {
100
- request,
101
- cause: ex,
102
- path,
103
- zone,
104
- });
100
+ this.logger.log(
101
+ EXCEPTION_SEVERITY_TO_LOG_LEVEL[ex.severity],
102
+ `Failed [${protocol.toUpperCase()}] ${path}`,
103
+ {
104
+ request,
105
+ cause: ex,
106
+ path,
107
+ zone,
108
+ },
109
+ );
105
110
 
106
111
  return throwError(() => ex);
107
112
  }),
@@ -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(1, '>>> Received [TEST] /test/path', expect.any(Object));
117
- expect(mockLogger.debug).toHaveBeenNthCalledWith(2, '<<< Handled [TEST] /test/path', expect.objectContaining({
118
- executionTime: expect.any(Number),
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.error).toHaveBeenCalledWith(
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.error).toHaveBeenCalledWith(
288
+ expect(mockLogger.log).toHaveBeenCalledWith(
289
+ LogLevel.error,
280
290
  'Failed [TEST] /test/path',
281
291
  expect.objectContaining({
282
292
  request: '[ALREADY LOGGED]',