@rsdk/core 4.0.7-next.0 → 4.0.7

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.
Files changed (39) hide show
  1. package/CHANGELOG.md +7 -2
  2. package/dist/exceptions.handling/global-exceptions.filter.d.ts +2 -0
  3. package/dist/exceptions.handling/global-exceptions.filter.js +16 -2
  4. package/dist/exceptions.handling/global-exceptions.filter.js.map +1 -1
  5. package/dist/logging/index.d.ts +1 -0
  6. package/dist/logging/index.js +3 -1
  7. package/dist/logging/index.js.map +1 -1
  8. package/dist/logging/logger-initializing.module.d.ts +5 -0
  9. package/dist/logging/logger-initializing.module.js +45 -0
  10. package/dist/logging/logger-initializing.module.js.map +1 -0
  11. package/dist/logging/logging.module.d.ts +1 -8
  12. package/dist/logging/logging.module.js +8 -39
  13. package/dist/logging/logging.module.js.map +1 -1
  14. package/dist/metrics/index.d.ts +1 -0
  15. package/dist/metrics/index.js +3 -1
  16. package/dist/metrics/index.js.map +1 -1
  17. package/dist/metrics/metric-initializing.module.d.ts +11 -0
  18. package/dist/metrics/metric-initializing.module.js +49 -0
  19. package/dist/metrics/metric-initializing.module.js.map +1 -0
  20. package/dist/metrics/metrics.module.d.ts +2 -10
  21. package/dist/metrics/metrics.module.js +4 -33
  22. package/dist/metrics/metrics.module.js.map +1 -1
  23. package/dist/platform.module.js +1 -1
  24. package/dist/platform.module.js.map +1 -1
  25. package/dist/rsdk-metadata/config-metadata.extractor.js +3 -0
  26. package/dist/rsdk-metadata/config-metadata.extractor.js.map +1 -1
  27. package/dist/transport/protocol.detector.js +1 -7
  28. package/dist/transport/protocol.detector.js.map +1 -1
  29. package/package.json +10 -10
  30. package/src/exceptions.handling/global-exceptions.filter.ts +26 -2
  31. package/src/logging/index.ts +1 -0
  32. package/src/logging/logger-initializing.module.ts +31 -0
  33. package/src/logging/logging.module.ts +6 -34
  34. package/src/metrics/index.ts +1 -0
  35. package/src/metrics/metric-initializing.module.ts +30 -0
  36. package/src/metrics/metrics.module.ts +4 -30
  37. package/src/platform.module.ts +2 -2
  38. package/src/rsdk-metadata/config-metadata.extractor.ts +9 -3
  39. package/src/transport/protocol.detector.ts +1 -7
package/CHANGELOG.md CHANGED
@@ -3,9 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [4.0.7-next.0](https://github.com/R-Vision/rsdk/compare/v4.0.6...v4.0.7-next.0) (2023-12-12)
6
+ ## [4.0.7](https://github.com/R-Vision/rsdk/compare/v4.0.6...v4.0.7) (2023-12-12)
7
7
 
8
- **Note:** Version bump only for package @rsdk/core
8
+ ### Bug Fixes
9
+
10
+ * correctly config rsdk metadata ([1760812](https://github.com/R-Vision/rsdk/commit/17608122f80670cfec9011ef527d8bfabf178326))
11
+ * fallback matching senders and transformers ([54b724b](https://github.com/R-Vision/rsdk/commit/54b724b4bb9fb387fb0ee30b1499edb920fc189e))
12
+ * fallback matching senders and transformers ([29eb11d](https://github.com/R-Vision/rsdk/commit/29eb11d1581788395894e2c761bef7715f5842ae))
13
+ * separate modules for initializing ([a1bfe7a](https://github.com/R-Vision/rsdk/commit/a1bfe7aecb6dce35d6b042b94ff0f26cae3cacf0))
9
14
 
10
15
  ## [4.0.6](https://github.com/R-Vision/rsdk/compare/v4.0.5...v4.0.6) (2023-12-11)
11
16
 
@@ -15,5 +15,7 @@ export declare class GlobalExceptionsFilter implements ExceptionFilter {
15
15
  catch(ex: any, host: ArgumentsHost): Observable<any>;
16
16
  private transform;
17
17
  private format;
18
+ private getFormatter;
18
19
  private send;
20
+ private getSender;
19
21
  }
@@ -54,7 +54,7 @@ let GlobalExceptionsFilter = class GlobalExceptionsFilter {
54
54
  }
55
55
  format(host, ex) {
56
56
  const protocol = this.detector.getProtocol(host);
57
- const formatter = this.formatters.find((x) => x.protocol === protocol);
57
+ const formatter = this.getFormatter(host, protocol);
58
58
  if (formatter) {
59
59
  this.logger.trace(`Found formatter: ${formatter.constructor.name}`);
60
60
  return formatter.format(ex, this.config.verbose);
@@ -69,11 +69,25 @@ let GlobalExceptionsFilter = class GlobalExceptionsFilter {
69
69
  }
70
70
  return { message: 'NO FORMATTER' };
71
71
  }
72
+ getFormatter(host, protocol) {
73
+ const f = this.formatters.find((x) => x.protocol === protocol);
74
+ if (!f) {
75
+ return this.formatters.find((x) => x.protocol === host.getType());
76
+ }
77
+ return f;
78
+ }
72
79
  send(host, ex) {
73
80
  const protocol = this.detector.getProtocol(host);
74
- const sender = this.senders.find((x) => x.protocol === protocol);
81
+ const sender = this.getSender(host, protocol);
75
82
  return sender?.send(host, ex) ?? (0, rxjs_1.throwError)(() => ex);
76
83
  }
84
+ getSender(host, protocol) {
85
+ const s = this.senders.find((x) => x.protocol === protocol);
86
+ if (!s) {
87
+ return this.senders.find((x) => x.protocol === host.getType());
88
+ }
89
+ return s;
90
+ }
77
91
  };
78
92
  exports.GlobalExceptionsFilter = GlobalExceptionsFilter;
79
93
  exports.GlobalExceptionsFilter = GlobalExceptionsFilter = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"global-exceptions.filter.js","sourceRoot":"","sources":["../../src/exceptions.handling/global-exceptions.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA+C;AAC/C,yCAAyD;AAGzD,+BAAkC;AAElC,8CAAqE;AACrE,wCAA0C;AAC1C,sEAAkE;AAElE,2CAAgE;AAChE,yEAAoE;AAQ7D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEM;IACE;IACL;IAEjB;IACA;IACT;IAPV,YACuC,UAA8B,EAC5B,YAAkC,EACvC,OAAwB,EAEzC,MAAe,EACf,MAA8B,EACvC,QAA0B;QANG,eAAU,GAAV,UAAU,CAAoB;QAC5B,iBAAY,GAAZ,YAAY,CAAsB;QACvC,YAAO,GAAP,OAAO,CAAiB;QAEzC,WAAM,GAAN,MAAM,CAAS;QACf,WAAM,GAAN,MAAM,CAAwB;QACvC,aAAQ,GAAR,QAAQ,CAAkB;IACjC,CAAC;IAEJ,KAAK,CAAC,EAAO,EAAE,IAAmB;QAChC,MAAM,WAAW,GACf,EAAE,YAAY,8BAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,qDAAqD;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAEO,SAAS,CAAC,EAAO;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,8BAAiB,CAAC,EAAE,CAAC,OAAO,IAAI,eAAe,EAAE,EAAE,CAAC,CAAC;QAErE,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;QAErB,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,IAAmB,EAAE,EAAW;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACvE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAEpE,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,IAAA,mBAAU,GAAE,CAAC,EAAE,EAAE;gBACtB,mDAAmD;gBACnD,UAAU,EAAE,CAAC,OAAO,CAAC;gBACrB,QAAQ,EAAE,sBAAa;aACxB,CAAW,CAAC;QACf,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IACrC,CAAC;IAEO,IAAI,CAAC,IAAmB,EAAE,EAAO;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAEjE,OAAO,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;CACF,CAAA;AAhEY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,cAAK,GAAE;IAGH,WAAA,IAAA,eAAM,EAAC,sBAAU,CAAC,CAAA;IAClB,WAAA,IAAA,eAAM,EAAC,wBAAY,CAAC,CAAA;IACpB,WAAA,IAAA,eAAM,EAAC,mBAAO,CAAC,CAAA;IACf,WAAA,IAAA,sBAAY,EAAC,sBAAsB,CAAC,CAAA;kEAEZ,iDAAsB;QAC7B,oCAAgB;GARzB,sBAAsB,CAgElC"}
1
+ {"version":3,"file":"global-exceptions.filter.js","sourceRoot":"","sources":["../../src/exceptions.handling/global-exceptions.filter.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ export * from './adapters';
4
4
  export * from './decorators';
5
5
  export { LOGGING_RSDK_METADATA_SCOPE } from './metadata/constants';
6
6
  export { LoggingRsdkMetadata } from './types';
7
+ export { LoggerInitializingModule } from './logger-initializing.module';
@@ -14,11 +14,13 @@ 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.LOGGING_RSDK_METADATA_SCOPE = void 0;
17
+ exports.LoggerInitializingModule = exports.LOGGING_RSDK_METADATA_SCOPE = void 0;
18
18
  __exportStar(require("@rsdk/logging"), exports);
19
19
  __exportStar(require("./logging.module"), exports);
20
20
  __exportStar(require("./adapters"), exports);
21
21
  __exportStar(require("./decorators"), exports);
22
22
  var constants_1 = require("./metadata/constants");
23
23
  Object.defineProperty(exports, "LOGGING_RSDK_METADATA_SCOPE", { enumerable: true, get: function () { return constants_1.LOGGING_RSDK_METADATA_SCOPE; } });
24
+ var logger_initializing_module_1 = require("./logger-initializing.module");
25
+ Object.defineProperty(exports, "LoggerInitializingModule", { enumerable: true, get: function () { return logger_initializing_module_1.LoggerInitializingModule; } });
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,mDAAiC;AACjC,6CAA2B;AAC3B,+CAA6B;AAC7B,kDAAmE;AAA1D,wHAAA,2BAA2B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,mDAAiC;AACjC,6CAA2B;AAC3B,+CAA6B;AAC7B,kDAAmE;AAA1D,wHAAA,2BAA2B,OAAA;AAEpC,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA"}
@@ -0,0 +1,5 @@
1
+ import { LoggingConfig } from './logging.config';
2
+ export declare class LoggerInitializingModule {
3
+ constructor(config: LoggingConfig);
4
+ private static logger;
5
+ }
@@ -0,0 +1,45 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ var LoggerInitializingModule_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.LoggerInitializingModule = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const logging_1 = require("@rsdk/logging");
19
+ const pino_1 = __importDefault(require("pino"));
20
+ const logging_config_1 = require("./logging.config");
21
+ let LoggerInitializingModule = class LoggerInitializingModule {
22
+ static { LoggerInitializingModule_1 = this; }
23
+ constructor(config) {
24
+ const cfg = () => {
25
+ LoggerInitializingModule_1.logger.info(`Setting log level: <${config.level}>`, {
26
+ logLevel: config.level,
27
+ });
28
+ logging_1.LoggerFactory.reconfigure({
29
+ ...config,
30
+ stream: pino_1.default.destination({
31
+ sync: config.sync,
32
+ }),
33
+ });
34
+ };
35
+ config.onUpdate(cfg);
36
+ cfg();
37
+ }
38
+ static logger = logging_1.LoggerFactory.create(LoggerInitializingModule_1);
39
+ };
40
+ exports.LoggerInitializingModule = LoggerInitializingModule;
41
+ exports.LoggerInitializingModule = LoggerInitializingModule = LoggerInitializingModule_1 = __decorate([
42
+ (0, common_1.Module)({}),
43
+ __metadata("design:paramtypes", [logging_config_1.LoggingConfig])
44
+ ], LoggerInitializingModule);
45
+ //# sourceMappingURL=logger-initializing.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-initializing.module.js","sourceRoot":"","sources":["../../src/logging/logger-initializing.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAC9C,gDAAwB;AAExB,qDAAiD;AAG1C,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;;IACnC,YAAY,MAAqB;QAC/B,MAAM,GAAG,GAAG,GAAS,EAAE;YACrB,0BAAwB,CAAC,MAAM,CAAC,IAAI,CAClC,uBAAuB,MAAM,CAAC,KAAK,GAAG,EACtC;gBACE,QAAQ,EAAE,MAAM,CAAC,KAAK;aACvB,CACF,CAAC;YAEF,uBAAa,CAAC,WAAW,CAAC;gBACxB,GAAG,MAAM;gBACT,MAAM,EAAE,cAAI,CAAC,WAAW,CAAC;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC;aACH,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,EAAE,CAAC;IACR,CAAC;IAEO,MAAM,CAAC,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,0BAAwB,CAAC,CAAC;;AAtB5D,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,eAAM,EAAC,EAAE,CAAC;qCAEW,8BAAa;GADtB,wBAAwB,CAuBpC"}
@@ -1,19 +1,12 @@
1
1
  import type { DynamicModule } from '@nestjs/common';
2
2
  import type { Constructor } from '@rsdk/common';
3
- import { LoggingConfig } from './logging.config';
4
3
  export declare class LoggingModule {
5
- private static logger;
6
- constructor(config: LoggingConfig);
7
- /**
8
- * Возвращает модуль которые нужны для логгирования в любом случае, например его конфиг
9
- */
10
- static pureRoot(): DynamicModule;
11
4
  static register(target: object, context: string | Constructor, token?: string): void;
12
5
  /**
13
6
  * Дополнительная возможность добавить в DI контейнер логгер в случаях когда нужен инлайн вызов например через `useFactory`
14
7
  * @example
15
8
  * const moduleDef = {
16
- * imports: [LoggerModule.forFeature(MyService)],
9
+ * imports: [LoggingModule.forFeature(MyService)],
17
10
  * module: MyModule,
18
11
  * providers: [
19
12
  * {
@@ -6,58 +6,28 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  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;
7
7
  return c > 3 && r && Object.defineProperty(target, key, r), r;
8
8
  };
9
- var __metadata = (this && this.__metadata) || function (k, v) {
10
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
11
- };
12
- var __importDefault = (this && this.__importDefault) || function (mod) {
13
- return (mod && mod.__esModule) ? mod : { "default": mod };
14
- };
15
9
  var LoggingModule_1;
16
10
  Object.defineProperty(exports, "__esModule", { value: true });
17
11
  exports.LoggingModule = void 0;
18
12
  const common_1 = require("@nestjs/common");
19
13
  const logging_1 = require("@rsdk/logging");
20
14
  const metadata_1 = require("@rsdk/metadata");
21
- const pino_1 = __importDefault(require("pino"));
22
15
  const constants_1 = require("./metadata/constants");
23
16
  const helpers_1 = require("./helpers");
24
- const logging_config_1 = require("./logging.config");
25
- let LoggingModule = class LoggingModule {
26
- static { LoggingModule_1 = this; }
27
- static logger = logging_1.LoggerFactory.create('LoggingModule');
28
- constructor(config) {
29
- const cfg = () => {
30
- LoggingModule_1.logger.info(`Setting log level: <${config.level}>`, {
31
- logLevel: config.level,
32
- });
33
- logging_1.LoggerFactory.reconfigure({
34
- ...config,
35
- stream: pino_1.default.destination({
36
- sync: config.sync,
37
- }),
38
- });
39
- };
40
- config.onUpdate(cfg);
41
- cfg();
42
- }
43
- /**
44
- * Возвращает модуль которые нужны для логгирования в любом случае, например его конфиг
45
- */
46
- static pureRoot() {
47
- return {
48
- global: true,
49
- module: LoggingModule_1,
50
- };
51
- }
17
+ let LoggingModule = LoggingModule_1 = class LoggingModule {
52
18
  static register(target, context, token = (0, helpers_1.getLoggerToken)(context)) {
53
19
  metadata_1.RsdkMetadata.add(target, this.forFeature(context, token), metadata_1.PLATFORM_RAW_GLOBAL_METADATA_SCOPE);
54
- metadata_1.RsdkMetadata.add(target, { context, token, target }, constants_1.LOGGING_RSDK_METADATA_SCOPE);
20
+ metadata_1.RsdkMetadata.add(target, {
21
+ context,
22
+ token,
23
+ target,
24
+ }, constants_1.LOGGING_RSDK_METADATA_SCOPE);
55
25
  }
56
26
  /**
57
27
  * Дополнительная возможность добавить в DI контейнер логгер в случаях когда нужен инлайн вызов например через `useFactory`
58
28
  * @example
59
29
  * const moduleDef = {
60
- * imports: [LoggerModule.forFeature(MyService)],
30
+ * imports: [LoggingModule.forFeature(MyService)],
61
31
  * module: MyModule,
62
32
  * providers: [
63
33
  * {
@@ -98,7 +68,6 @@ let LoggingModule = class LoggingModule {
98
68
  };
99
69
  exports.LoggingModule = LoggingModule;
100
70
  exports.LoggingModule = LoggingModule = LoggingModule_1 = __decorate([
101
- (0, common_1.Module)({}),
102
- __metadata("design:paramtypes", [logging_config_1.LoggingConfig])
71
+ (0, common_1.Module)({})
103
72
  ], LoggingModule);
104
73
  //# sourceMappingURL=logging.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.module.js","sourceRoot":"","sources":["../../src/logging/logging.module.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;;;;;;;;;;;;AAG9B,2CAAwC;AAExC,2CAA8C;AAE9C,6CAGwB;AACxB,gDAAwB;AAExB,oDAAmE;AACnE,uCAA2C;AAC3C,qDAAiD;AAI1C,IAAM,aAAa,GAAnB,MAAM,aAAa;;IAChB,MAAM,CAAC,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE9D,YAAY,MAAqB;QAC/B,MAAM,GAAG,GAAG,GAAS,EAAE;YACrB,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,KAAK,GAAG,EAAE;gBAChE,QAAQ,EAAE,MAAM,CAAC,KAAK;aACvB,CAAC,CAAC;YAEH,uBAAa,CAAC,WAAW,CAAC;gBACxB,GAAG,MAAM;gBACT,MAAM,EAAE,cAAI,CAAC,WAAW,CAAC;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC;aACH,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,EAAE,CAAC;IACR,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,eAAa;SACtB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,MAAc,EACd,OAA6B,EAC7B,KAAK,GAAG,IAAA,wBAAc,EAAC,OAAO,CAAC;QAE/B,uBAAY,CAAC,GAAG,CACd,MAAM,EACN,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAC/B,6CAAkC,CACnC,CAAC;QAEF,uBAAY,CAAC,GAAG,CACd,MAAM,EACN,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAC1B,uCAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,MAAM,CAAC,UAAU,CACf,OAA6B,EAC7B,KAAK,GAAG,IAAA,wBAAc,EAAC,OAAO,CAAC;QAE/B,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,uBAAa,CAAC,MAAM,CAAC,OAAO,CAAC;iBACxC;aACF;YACD,OAAO,EAAE,CAAC,KAAK,CAAC;SACjB,CAAC;IACJ,CAAC;;AA7FU,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;qCAIW,8BAAa;GAHtB,aAAa,CA8FzB"}
1
+ {"version":3,"file":"logging.module.js","sourceRoot":"","sources":["../../src/logging/logging.module.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;;;;;;AAG9B,2CAAwC;AAExC,2CAA8C;AAE9C,6CAGwB;AAExB,oDAAmE;AACnE,uCAA2C;AAIpC,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB,MAAM,CAAC,QAAQ,CACb,MAAc,EACd,OAA6B,EAC7B,KAAK,GAAG,IAAA,wBAAc,EAAC,OAAO,CAAC;QAE/B,uBAAY,CAAC,GAAG,CACd,MAAM,EACN,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAC/B,6CAAkC,CACnC,CAAC;QAEF,uBAAY,CAAC,GAAG,CACd,MAAM,EACN;YACE,OAAO;YACP,KAAK;YACL,MAAM;SACP,EACD,uCAA2B,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,MAAM,CAAC,UAAU,CACf,OAA6B,EAC7B,KAAK,GAAG,IAAA,wBAAc,EAAC,OAAO,CAAC;QAE/B,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,uBAAa,CAAC,MAAM,CAAC,OAAO,CAAC;iBACxC;aACF;YACD,OAAO,EAAE,CAAC,KAAK,CAAC;SACjB,CAAC;IACJ,CAAC;CACF,CAAA;AApEY,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,aAAa,CAoEzB"}
@@ -4,3 +4,4 @@ export * from './types';
4
4
  export * from './metadata';
5
5
  export { MetricRsdkMetadata } from './metadata';
6
6
  export { MetricStorage } from './metric.storage';
7
+ export { MetricInitializingModule } from './metric-initializing.module';
@@ -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.MetricStorage = exports.register = exports.Summary = exports.Histogram = exports.Gauge = exports.Counter = void 0;
17
+ exports.MetricInitializingModule = exports.MetricStorage = exports.register = exports.Summary = exports.Histogram = exports.Gauge = exports.Counter = void 0;
18
18
  var prom_client_1 = require("prom-client");
19
19
  Object.defineProperty(exports, "Counter", { enumerable: true, get: function () { return prom_client_1.Counter; } });
20
20
  Object.defineProperty(exports, "Gauge", { enumerable: true, get: function () { return prom_client_1.Gauge; } });
@@ -26,4 +26,6 @@ __exportStar(require("./types"), exports);
26
26
  __exportStar(require("./metadata"), exports);
27
27
  var metric_storage_1 = require("./metric.storage");
28
28
  Object.defineProperty(exports, "MetricStorage", { enumerable: true, get: function () { return metric_storage_1.MetricStorage; } });
29
+ var metric_initializing_module_1 = require("./metric-initializing.module");
30
+ Object.defineProperty(exports, "MetricInitializingModule", { enumerable: true, get: function () { return metric_initializing_module_1.MetricInitializingModule; } });
29
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA2E;AAAlE,sGAAA,OAAO,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,uGAAA,QAAQ,OAAA;AACrD,mDAAiC;AACjC,0CAAwB;AACxB,6CAA2B;AAE3B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA2E;AAAlE,sGAAA,OAAO,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,uGAAA,QAAQ,OAAA;AACrD,mDAAiC;AACjC,0CAAwB;AACxB,6CAA2B;AAE3B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA"}
@@ -0,0 +1,11 @@
1
+ import { type OnApplicationBootstrap } from '@nestjs/common';
2
+ import { MetricsModuleConfig } from './metrics.config';
3
+ export declare class MetricInitializingModule implements OnApplicationBootstrap {
4
+ private readonly config;
5
+ constructor(config: MetricsModuleConfig);
6
+ /**
7
+ * Configures prom-client
8
+ */
9
+ onApplicationBootstrap(): void;
10
+ private static isBootstrapped;
11
+ }
@@ -0,0 +1,49 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ var MetricInitializingModule_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.MetricInitializingModule = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const prom_client_1 = __importDefault(require("prom-client"));
19
+ const metrics_config_1 = require("./metrics.config");
20
+ let MetricInitializingModule = class MetricInitializingModule {
21
+ static { MetricInitializingModule_1 = this; }
22
+ config;
23
+ constructor(config) {
24
+ this.config = config;
25
+ }
26
+ /**
27
+ * Configures prom-client
28
+ */
29
+ onApplicationBootstrap() {
30
+ /**
31
+ * This module initializes many times: forRoot, forFeature
32
+ * but real prom-client should occur only once.
33
+ */
34
+ if (MetricInitializingModule_1.isBootstrapped) {
35
+ return;
36
+ }
37
+ if (this.config.includeDefault) {
38
+ prom_client_1.default.collectDefaultMetrics();
39
+ }
40
+ MetricInitializingModule_1.isBootstrapped = true;
41
+ }
42
+ static isBootstrapped = false;
43
+ };
44
+ exports.MetricInitializingModule = MetricInitializingModule;
45
+ exports.MetricInitializingModule = MetricInitializingModule = MetricInitializingModule_1 = __decorate([
46
+ (0, common_1.Module)({}),
47
+ __metadata("design:paramtypes", [metrics_config_1.MetricsModuleConfig])
48
+ ], MetricInitializingModule);
49
+ //# sourceMappingURL=metric-initializing.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric-initializing.module.js","sourceRoot":"","sources":["../../src/metrics/metric-initializing.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,8DAAiC;AAEjC,qDAAuD;AAGhD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;;IACN;IAA7B,YAA6B,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAE5D;;OAEG;IACH,sBAAsB;QACpB;;;WAGG;QACH,IAAI,0BAAwB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,qBAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,CAAC;QAED,0BAAwB,CAAC,cAAc,GAAG,IAAI,CAAC;IACjD,CAAC;IAEO,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;;AAtB3B,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,eAAM,EAAC,EAAE,CAAC;qCAE4B,oCAAmB;GAD7C,wBAAwB,CAuBpC"}
@@ -1,6 +1,5 @@
1
- import type { DynamicModule, OnApplicationBootstrap } from '@nestjs/common';
1
+ import type { DynamicModule } from '@nestjs/common';
2
2
  import type { Constructor } from '@rsdk/common';
3
- import { MetricsModuleConfig } from './metrics.config';
4
3
  import type { AnyMetric, MetricsModuleOptions } from './types';
5
4
  /**
6
5
  * Metrics module exposes metrics interface (depending on transport)
@@ -10,10 +9,7 @@ import type { AnyMetric, MetricsModuleOptions } from './types';
10
9
  * @willsoto/nestjs-prometheus was an alternative, but it didn't really
11
10
  * fit
12
11
  */
13
- export declare class MetricsModule implements OnApplicationBootstrap {
14
- private readonly config;
15
- private static isBootstrapped;
16
- constructor(config: MetricsModuleConfig);
12
+ export declare class MetricsModule {
17
13
  /**
18
14
  * Adds metrics controller provided as options
19
15
  *
@@ -28,8 +24,4 @@ export declare class MetricsModule implements OnApplicationBootstrap {
28
24
  * @returns dynamic module
29
25
  */
30
26
  static forFeature(first: Constructor<AnyMetric>, ...other: Constructor<AnyMetric>[]): DynamicModule;
31
- /**
32
- * Configures prom-client
33
- */
34
- onApplicationBootstrap(): void;
35
27
  }
@@ -5,21 +5,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
8
  var MetricsModule_1;
15
9
  Object.defineProperty(exports, "__esModule", { value: true });
16
10
  exports.MetricsModule = void 0;
17
11
  const common_1 = require("@nestjs/common");
18
12
  const metadata_1 = require("@rsdk/metadata");
19
- const prom_client_1 = __importDefault(require("prom-client"));
20
13
  const constants_1 = require("./metadata/constants");
21
14
  const metric_storage_1 = require("./metric.storage");
22
- const metrics_config_1 = require("./metrics.config");
15
+ const metric_initializing_module_1 = require("./metric-initializing.module");
23
16
  /**
24
17
  * Metrics module exposes metrics interface (depending on transport)
25
18
  * and gives convenient ways to register and inject custom prom-client
@@ -28,10 +21,7 @@ const metrics_config_1 = require("./metrics.config");
28
21
  * @willsoto/nestjs-prometheus was an alternative, but it didn't really
29
22
  * fit
30
23
  */
31
- let MetricsModule = class MetricsModule {
32
- static { MetricsModule_1 = this; }
33
- config;
34
- static isBootstrapped = false;
24
+ let MetricsModule = MetricsModule_1 = class MetricsModule {
35
25
  // TODO По идее от этого нужно избавиться, но тут нужно будет делать @InjectMetric(SomeMetric) там где сейчас используется someMetric: SomeMetric
36
26
  // Но стоит понимать что смысла в этом нет от слова совсем
37
27
  // Так как даже если там окажутся чужие метрики, но приложение не будет их использовать, то для приложения ничего не произойдёт
@@ -39,9 +29,6 @@ let MetricsModule = class MetricsModule {
39
29
  // Это дыра в архитектуре потому что мы ссылаемся на один и тот же класс, то рассчитываем получить один и тот же инстанс, а так как это метрика то она должна быть общая на процесс, иначе не имеет смысла
40
30
  // Во-вторых если запускаем n > 1 приложения в одном и том же процессе, то снимать метрики с этих приложений как минимум... странно?
41
31
  // private static metrics = new Map<Constructor<AnyMetric>, Provider>();
42
- constructor(config) {
43
- this.config = config;
44
- }
45
32
  /**
46
33
  * Adds metrics controller provided as options
47
34
  *
@@ -59,6 +46,7 @@ let MetricsModule = class MetricsModule {
59
46
  },
60
47
  ],
61
48
  exports: [metric_storage_1.MetricStorage],
49
+ imports: [metric_initializing_module_1.MetricInitializingModule],
62
50
  };
63
51
  }
64
52
  /**
@@ -89,26 +77,9 @@ let MetricsModule = class MetricsModule {
89
77
  providers,
90
78
  };
91
79
  }
92
- /**
93
- * Configures prom-client
94
- */
95
- onApplicationBootstrap() {
96
- /**
97
- * This module initializes many times: forRoot, forFeature
98
- * but real prom-client should occur only once.
99
- */
100
- if (MetricsModule_1.isBootstrapped) {
101
- return;
102
- }
103
- if (this.config.includeDefault) {
104
- prom_client_1.default.collectDefaultMetrics();
105
- }
106
- MetricsModule_1.isBootstrapped = true;
107
- }
108
80
  };
109
81
  exports.MetricsModule = MetricsModule;
110
82
  exports.MetricsModule = MetricsModule = MetricsModule_1 = __decorate([
111
- (0, common_1.Module)({}),
112
- __metadata("design:paramtypes", [metrics_config_1.MetricsModuleConfig])
83
+ (0, common_1.Module)({})
113
84
  ], MetricsModule);
114
85
  //# sourceMappingURL=metrics.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.module.js","sourceRoot":"","sources":["../../src/metrics/metrics.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,2CAAwC;AAExC,6CAA8C;AAC9C,8DAAiC;AAEjC,oDAAkE;AAElE,qDAAiD;AACjD,qDAAuD;AAGvD;;;;;;;GAOG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAa;;IAUK;IATrB,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;IACtC,iJAAiJ;IACjJ,0DAA0D;IAC1D,+HAA+H;IAC/H,4GAA4G;IAC5G,0MAA0M;IAC1M,oIAAoI;IACpI,wEAAwE;IAExE,YAA6B,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAE5D;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,OAA6B;QAC1C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;YACrC,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,8BAAa;oBACtB,QAAQ,EAAE,IAAI,8BAAa,EAAE;iBAC9B;aACF;YACD,OAAO,EAAE,CAAC,8BAAa,CAAC;SACzB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACf,KAA6B,EAC7B,GAAG,KAA+B;QAElC,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,QAAQ,CAAC,GACd,uBAAY,CAAC,GAAG,CACd,IAAI,EACJ,sCAA0B,CAC3B,IAAI,EAAE,CAAC;YAEV,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;YAEzC,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,CAAC,8BAAa,CAAC;gBACvB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE;oBAC3C,MAAM,QAAQ,GACZ,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAExD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,SAAS;YAClB,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB;;;WAGG;QACH,IAAI,eAAa,CAAC,cAAc,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,qBAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,CAAC;QAED,eAAa,CAAC,cAAc,GAAG,IAAI,CAAC;IACtC,CAAC;;AA3FU,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;qCAW4B,oCAAmB;GAV7C,aAAa,CA4FzB"}
1
+ {"version":3,"file":"metrics.module.js","sourceRoot":"","sources":["../../src/metrics/metrics.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAwC;AAExC,6CAA8C;AAE9C,oDAAkE;AAElE,qDAAiD;AACjD,6EAAwE;AAGxE;;;;;;;GAOG;AAEI,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB,iJAAiJ;IACjJ,0DAA0D;IAC1D,+HAA+H;IAC/H,4GAA4G;IAC5G,0MAA0M;IAC1M,oIAAoI;IACpI,wEAAwE;IAExE;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,OAA6B;QAC1C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;YACrC,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,8BAAa;oBACtB,QAAQ,EAAE,IAAI,8BAAa,EAAE;iBAC9B;aACF;YACD,OAAO,EAAE,CAAC,8BAAa,CAAC;YACxB,OAAO,EAAE,CAAC,qDAAwB,CAAC;SACpC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACf,KAA6B,EAC7B,GAAG,KAA+B;QAElC,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,QAAQ,CAAC,GACd,uBAAY,CAAC,GAAG,CACd,IAAI,EACJ,sCAA0B,CAC3B,IAAI,EAAE,CAAC;YAEV,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;YAEzC,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,CAAC,8BAAa,CAAC;gBACvB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE;oBAC3C,MAAM,QAAQ,GACZ,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAExD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,SAAS;YAClB,SAAS;SACV,CAAC;IACJ,CAAC;CACF,CAAA;AAvEY,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,aAAa,CAuEzB"}
@@ -35,7 +35,7 @@ let PlatformModule = PlatformModule_1 = class PlatformModule {
35
35
  app_metadata_1.AppMetadataModule.forRoot(options),
36
36
  config_1.PlatformConfigModule.forRoot(options),
37
37
  tracing_1.TracingModule.forRoot({ appName: options.name, processing: 'simple' }),
38
- logging_1.LoggingModule.pureRoot(),
38
+ logging_1.LoggerInitializingModule,
39
39
  ...(options.modules ?? []),
40
40
  ];
41
41
  // Adding transport module if needed
@@ -1 +1 @@
1
- {"version":3,"file":"platform.module.js","sourceRoot":"","sources":["../src/platform.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAwC;AAIxC,0DAA8D;AAC9D,mEAAuE;AACvE,iDAAmD;AACnD,qCAAgD;AAChD,6CAAiD;AACjD,uCAA0C;AAC1C,uCAA0C;AAG1C,IAAa,cAAc,sBAA3B,MAAa,cAAc;IAEoB;IAD7C,YAC6C,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAC1E,CAAC;IAEJ,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,MAAM,OAAO,GAAoC;YAC/C,UAAU;YACV,oCAAoB,CAAC,UAAU,CAAC,OAAO,CAAC;YAExC,iBAAiB;YACjB,gCAAiB,CAAC,OAAO,CAAC,OAAO,CAAC;YAClC,6BAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,uBAAa,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YACtE,uBAAa,CAAC,QAAQ,EAAE;YACxB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SAC3B,CAAC;QAEF,oCAAoC;QACpC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,0CAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO;YACP,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,yBAAyB;oBAClC,QAAQ,EAAE,OAAO;iBAClB;aACF;YACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;SACrC,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,8BAAiB,CACzB,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF,CAAA;AA/CY,wCAAc;yBAAd,cAAc;IAEtB,WAAA,IAAA,eAAM,EAAC,yBAAyB,CAAC,CAAA;;GAFzB,cAAc,CA+C1B"}
1
+ {"version":3,"file":"platform.module.js","sourceRoot":"","sources":["../src/platform.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAwC;AAIxC,0DAA8D;AAC9D,mEAAuE;AACvE,iDAAmD;AACnD,qCAAgD;AAChD,6CAAiD;AACjD,uCAAqD;AACrD,uCAA0C;AAG1C,IAAa,cAAc,sBAA3B,MAAa,cAAc;IAEoB;IAD7C,YAC6C,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAC1E,CAAC;IAEJ,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,MAAM,OAAO,GAAoC;YAC/C,UAAU;YACV,oCAAoB,CAAC,UAAU,CAAC,OAAO,CAAC;YAExC,iBAAiB;YACjB,gCAAiB,CAAC,OAAO,CAAC,OAAO,CAAC;YAClC,6BAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,uBAAa,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YACtE,kCAAwB;YACxB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SAC3B,CAAC;QAEF,oCAAoC;QACpC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,0CAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO;YACP,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,yBAAyB;oBAClC,QAAQ,EAAE,OAAO;iBAClB;aACF;YACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;SACrC,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,8BAAiB,CACzB,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF,CAAA;AA/CY,wCAAc;yBAAd,cAAc;IAEtB,WAAA,IAAA,eAAM,EAAC,yBAAyB,CAAC,CAAA;;GAFzB,cAAc,CA+C1B"}
@@ -36,6 +36,9 @@ class ConfigMetadataExtractor {
36
36
  key: arg,
37
37
  scope: metadata_1.PLATFORM_RAW_GLOBAL_METADATA_SCOPE,
38
38
  });
39
+ const configs = metadata_1.RsdkMetadata.get(arg);
40
+ if (configs)
41
+ resources.push(...configs);
39
42
  }
40
43
  return resources;
41
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config-metadata.extractor.js","sourceRoot":"","sources":["../../src/rsdk-metadata/config-metadata.extractor.ts"],"names":[],"mappings":";;;AASA,6CAAoE;AACpE,iDAA0D;AAE1D,sCAAyD;AAEzD;;GAEG;AACH,MAAa,uBAAuB;IAClC,OAAO,CACL,KAMkB;QAElB,IAAI,CAAC,mBAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD;;WAEG;QACH,MAAM,IAAI,GAAG,2BAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/C;;WAEG;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,SAAS,GAA8B,EAAE,CAAC;QAEhD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,mBAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,MAAM,eAAe,GAAG,eAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAEpD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,6BAAoB,CAAC,oBAAoB,CAAC,GAAG,CAAC;gBACrD,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,6CAAkC;aAC1C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA1CD,0DA0CC"}
1
+ {"version":3,"file":"config-metadata.extractor.js","sourceRoot":"","sources":["../../src/rsdk-metadata/config-metadata.extractor.ts"],"names":[],"mappings":";;;AASA,6CAGwB;AACxB,iDAA0D;AAE1D,sCAAyD;AAEzD;;GAEG;AACH,MAAa,uBAAuB;IAClC,OAAO,CACL,KAMkB;QAElB,IAAI,CAAC,mBAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD;;WAEG;QACH,MAAM,IAAI,GAAG,2BAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/C;;WAEG;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,SAAS,GAAoB,EAAE,CAAC;QAEtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,mBAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,MAAM,eAAe,GAAG,eAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAEpD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,SAAS,CAAC,IAAI,CAA0B;gBACtC,KAAK,EAAE,6BAAoB,CAAC,oBAAoB,CAAC,GAAG,CAAC;gBACrD,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,6CAAkC;aAC1C,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,uBAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,OAAO;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA7CD,0DA6CC"}
@@ -26,13 +26,7 @@ class ProtocolDetector {
26
26
  });
27
27
  }
28
28
  if (matched.length === 0) {
29
- throw new exceptions_1.InternalException('No matchers found', {
30
- cause: {
31
- matchers,
32
- matched,
33
- context,
34
- },
35
- });
29
+ return;
36
30
  }
37
31
  return matched[0].tr.getProtocol();
38
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.detector.js","sourceRoot":"","sources":["../../src/transport/protocol.detector.ts"],"names":[],"mappings":";;;AAEA,8CAAkD;AAGlD,MAAa,gBAAgB;IACP;IAApB,YAAoB,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;IAAG,CAAC;IAEhD,WAAW,CAAC,OAAsB;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC;YACnC,EAAE;SACH,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,8BAAiB,CAAC,iCAAiC,EAAE;gBAC7D,KAAK,EAAE;oBACL,QAAQ;oBACR,OAAO;oBACP,OAAO;iBACR;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,8BAAiB,CAAC,mBAAmB,EAAE;gBAC/C,KAAK,EAAE;oBACL,QAAQ;oBACR,OAAO;oBACP,OAAO;iBACR;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;CACF;AAhCD,4CAgCC"}
1
+ {"version":3,"file":"protocol.detector.js","sourceRoot":"","sources":["../../src/transport/protocol.detector.ts"],"names":[],"mappings":";;;AAEA,8CAAkD;AAGlD,MAAa,gBAAgB;IACP;IAApB,YAAoB,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;IAAG,CAAC;IAEhD,WAAW,CAAC,OAAsB;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC;YACnC,EAAE;SACH,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,8BAAiB,CAAC,iCAAiC,EAAE;gBAC7D,KAAK,EAAE;oBACL,QAAQ;oBACR,OAAO;oBACP,OAAO;iBACR;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;CACF;AA1BD,4CA0BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/core",
3
- "version": "4.0.7-next.0",
3
+ "version": "4.0.7",
4
4
  "description": "Nestjs based microservice chassis",
5
5
  "license": "Apache License 2.0",
6
6
  "publishConfig": {
@@ -32,18 +32,18 @@
32
32
  "@nestjs/common": "^10.0.0",
33
33
  "@nestjs/core": "^10.0.0",
34
34
  "@nestjs/microservices": "^10.0.0",
35
- "@rsdk/autodoc.protocol": "^4.0.7-next.0",
36
- "@rsdk/common": "^4.0.7-next.0",
37
- "@rsdk/common.nestjs": "^4.0.7-next.0",
38
- "@rsdk/common.node": "^4.0.7-next.0",
39
- "@rsdk/decorators": "^4.0.7-next.0",
40
- "@rsdk/logging": "^4.0.7-next.0",
41
- "@rsdk/metadata": "^4.0.7-next.0",
42
- "@rsdk/nest-tools": "^4.0.7-next.0",
35
+ "@rsdk/autodoc.protocol": "^4.0.7",
36
+ "@rsdk/common": "^4.0.7",
37
+ "@rsdk/common.nestjs": "^4.0.7",
38
+ "@rsdk/common.node": "^4.0.7",
39
+ "@rsdk/decorators": "^4.0.7",
40
+ "@rsdk/logging": "^4.0.7",
41
+ "@rsdk/metadata": "^4.0.7",
42
+ "@rsdk/nest-tools": "^4.0.7",
43
43
  "axios": "^1.1.3",
44
44
  "pino": "^8.16.1",
45
45
  "reflect-metadata": "^0.1.13",
46
46
  "rxjs": "^7.0.0"
47
47
  },
48
- "gitHead": "7565abcff22961808407f6183f32432bf6e1ba2e"
48
+ "gitHead": "91c74eb2b2bf5934a2378cb6d210cc6113e2e707"
49
49
  }
@@ -56,7 +56,7 @@ export class GlobalExceptionsFilter implements ExceptionFilter {
56
56
 
57
57
  private format(host: ArgumentsHost, ex: unknown): unknown {
58
58
  const protocol = this.detector.getProtocol(host);
59
- const formatter = this.formatters.find((x) => x.protocol === protocol);
59
+ const formatter = this.getFormatter(host, protocol);
60
60
  if (formatter) {
61
61
  this.logger.trace(`Found formatter: ${formatter.constructor.name}`);
62
62
 
@@ -76,10 +76,34 @@ export class GlobalExceptionsFilter implements ExceptionFilter {
76
76
  return { message: 'NO FORMATTER' };
77
77
  }
78
78
 
79
+ private getFormatter(
80
+ host: ArgumentsHost,
81
+ protocol: string | undefined,
82
+ ): IErrorsFormatter | undefined {
83
+ const f = this.formatters.find((x) => x.protocol === protocol);
84
+ if (!f) {
85
+ return this.formatters.find((x) => x.protocol === host.getType());
86
+ }
87
+ return f;
88
+ }
89
+
79
90
  private send(host: ArgumentsHost, ex: any): Observable<unknown> {
80
91
  const protocol = this.detector.getProtocol(host);
81
- const sender = this.senders.find((x) => x.protocol === protocol);
92
+ const sender = this.getSender(host, protocol);
82
93
 
83
94
  return sender?.send(host, ex) ?? throwError(() => ex);
84
95
  }
96
+
97
+ private getSender(
98
+ host: ArgumentsHost,
99
+ protocol: string | undefined,
100
+ ): IErrorsSender | undefined {
101
+ const s: IErrorsSender | undefined = this.senders.find(
102
+ (x) => x.protocol === protocol,
103
+ );
104
+ if (!s) {
105
+ return this.senders.find((x) => x.protocol === host.getType());
106
+ }
107
+ return s;
108
+ }
85
109
  }
@@ -4,3 +4,4 @@ export * from './adapters';
4
4
  export * from './decorators';
5
5
  export { LOGGING_RSDK_METADATA_SCOPE } from './metadata/constants';
6
6
  export { LoggingRsdkMetadata } from './types';
7
+ export { LoggerInitializingModule } from './logger-initializing.module';
@@ -0,0 +1,31 @@
1
+ import { Module } from '@nestjs/common';
2
+ import { LoggerFactory } from '@rsdk/logging';
3
+ import pino from 'pino';
4
+
5
+ import { LoggingConfig } from './logging.config';
6
+
7
+ @Module({})
8
+ export class LoggerInitializingModule {
9
+ constructor(config: LoggingConfig) {
10
+ const cfg = (): void => {
11
+ LoggerInitializingModule.logger.info(
12
+ `Setting log level: <${config.level}>`,
13
+ {
14
+ logLevel: config.level,
15
+ },
16
+ );
17
+
18
+ LoggerFactory.reconfigure({
19
+ ...config,
20
+ stream: pino.destination({
21
+ sync: config.sync,
22
+ }),
23
+ });
24
+ };
25
+
26
+ config.onUpdate(cfg);
27
+ cfg();
28
+ }
29
+
30
+ private static logger = LoggerFactory.create(LoggerInitializingModule);
31
+ }
@@ -9,45 +9,13 @@ import {
9
9
  PLATFORM_RAW_GLOBAL_METADATA_SCOPE,
10
10
  RsdkMetadata,
11
11
  } from '@rsdk/metadata';
12
- import pino from 'pino';
13
12
 
14
13
  import { LOGGING_RSDK_METADATA_SCOPE } from './metadata/constants';
15
14
  import { getLoggerToken } from './helpers';
16
- import { LoggingConfig } from './logging.config';
17
15
  import type { LoggingRsdkMetadata } from './types';
18
16
 
19
17
  @Module({})
20
18
  export class LoggingModule {
21
- private static logger = LoggerFactory.create('LoggingModule');
22
-
23
- constructor(config: LoggingConfig) {
24
- const cfg = (): void => {
25
- LoggingModule.logger.info(`Setting log level: <${config.level}>`, {
26
- logLevel: config.level,
27
- });
28
-
29
- LoggerFactory.reconfigure({
30
- ...config,
31
- stream: pino.destination({
32
- sync: config.sync,
33
- }),
34
- });
35
- };
36
-
37
- config.onUpdate(cfg);
38
- cfg();
39
- }
40
-
41
- /**
42
- * Возвращает модуль которые нужны для логгирования в любом случае, например его конфиг
43
- */
44
- static pureRoot(): DynamicModule {
45
- return {
46
- global: true,
47
- module: LoggingModule,
48
- };
49
- }
50
-
51
19
  static register(
52
20
  target: object,
53
21
  context: string | Constructor,
@@ -61,7 +29,11 @@ export class LoggingModule {
61
29
 
62
30
  RsdkMetadata.add<LoggingRsdkMetadata>(
63
31
  target,
64
- { context, token, target },
32
+ {
33
+ context,
34
+ token,
35
+ target,
36
+ },
65
37
  LOGGING_RSDK_METADATA_SCOPE,
66
38
  );
67
39
  }
@@ -70,7 +42,7 @@ export class LoggingModule {
70
42
  * Дополнительная возможность добавить в DI контейнер логгер в случаях когда нужен инлайн вызов например через `useFactory`
71
43
  * @example
72
44
  * const moduleDef = {
73
- * imports: [LoggerModule.forFeature(MyService)],
45
+ * imports: [LoggingModule.forFeature(MyService)],
74
46
  * module: MyModule,
75
47
  * providers: [
76
48
  * {
@@ -4,3 +4,4 @@ export * from './types';
4
4
  export * from './metadata';
5
5
  export { MetricRsdkMetadata } from './metadata';
6
6
  export { MetricStorage } from './metric.storage';
7
+ export { MetricInitializingModule } from './metric-initializing.module';
@@ -0,0 +1,30 @@
1
+ import { Module, type OnApplicationBootstrap } from '@nestjs/common';
2
+ import client from 'prom-client';
3
+
4
+ import { MetricsModuleConfig } from './metrics.config';
5
+
6
+ @Module({})
7
+ export class MetricInitializingModule implements OnApplicationBootstrap {
8
+ constructor(private readonly config: MetricsModuleConfig) {}
9
+
10
+ /**
11
+ * Configures prom-client
12
+ */
13
+ onApplicationBootstrap(): void {
14
+ /**
15
+ * This module initializes many times: forRoot, forFeature
16
+ * but real prom-client should occur only once.
17
+ */
18
+ if (MetricInitializingModule.isBootstrapped) {
19
+ return;
20
+ }
21
+
22
+ if (this.config.includeDefault) {
23
+ client.collectDefaultMetrics();
24
+ }
25
+
26
+ MetricInitializingModule.isBootstrapped = true;
27
+ }
28
+
29
+ private static isBootstrapped = false;
30
+ }
@@ -1,17 +1,12 @@
1
- import type {
2
- DynamicModule,
3
- OnApplicationBootstrap,
4
- Provider,
5
- } from '@nestjs/common';
1
+ import type { DynamicModule, Provider } from '@nestjs/common';
6
2
  import { Module } from '@nestjs/common';
7
3
  import type { Constructor } from '@rsdk/common';
8
4
  import { RsdkMetadata } from '@rsdk/metadata';
9
- import client from 'prom-client';
10
5
 
11
6
  import { METRIC_RSDK_METADATA_SCOPE } from './metadata/constants';
12
7
  import type { MetricRsdkMetadata } from './metadata';
13
8
  import { MetricStorage } from './metric.storage';
14
- import { MetricsModuleConfig } from './metrics.config';
9
+ import { MetricInitializingModule } from './metric-initializing.module';
15
10
  import type { AnyMetric, MetricsModuleOptions } from './types';
16
11
 
17
12
  /**
@@ -23,8 +18,7 @@ import type { AnyMetric, MetricsModuleOptions } from './types';
23
18
  * fit
24
19
  */
25
20
  @Module({})
26
- export class MetricsModule implements OnApplicationBootstrap {
27
- private static isBootstrapped = false;
21
+ export class MetricsModule {
28
22
  // TODO По идее от этого нужно избавиться, но тут нужно будет делать @InjectMetric(SomeMetric) там где сейчас используется someMetric: SomeMetric
29
23
  // Но стоит понимать что смысла в этом нет от слова совсем
30
24
  // Так как даже если там окажутся чужие метрики, но приложение не будет их использовать, то для приложения ничего не произойдёт
@@ -33,8 +27,6 @@ export class MetricsModule implements OnApplicationBootstrap {
33
27
  // Во-вторых если запускаем n > 1 приложения в одном и том же процессе, то снимать метрики с этих приложений как минимум... странно?
34
28
  // private static metrics = new Map<Constructor<AnyMetric>, Provider>();
35
29
 
36
- constructor(private readonly config: MetricsModuleConfig) {}
37
-
38
30
  /**
39
31
  * Adds metrics controller provided as options
40
32
  *
@@ -52,6 +44,7 @@ export class MetricsModule implements OnApplicationBootstrap {
52
44
  },
53
45
  ],
54
46
  exports: [MetricStorage],
47
+ imports: [MetricInitializingModule],
55
48
  };
56
49
  }
57
50
 
@@ -96,23 +89,4 @@ export class MetricsModule implements OnApplicationBootstrap {
96
89
  providers,
97
90
  };
98
91
  }
99
-
100
- /**
101
- * Configures prom-client
102
- */
103
- onApplicationBootstrap(): void {
104
- /**
105
- * This module initializes many times: forRoot, forFeature
106
- * but real prom-client should occur only once.
107
- */
108
- if (MetricsModule.isBootstrapped) {
109
- return;
110
- }
111
-
112
- if (this.config.includeDefault) {
113
- client.collectDefaultMetrics();
114
- }
115
-
116
- MetricsModule.isBootstrapped = true;
117
- }
118
92
  }
@@ -8,7 +8,7 @@ import { PlatformTransportModule } from './transport/transport.module';
8
8
  import { AppMetadataModule } from './app-metadata';
9
9
  import { PlatformConfigModule } from './config';
10
10
  import { SequenceException } from './exceptions';
11
- import { LoggingModule } from './logging';
11
+ import { LoggerInitializingModule } from './logging';
12
12
  import { TracingModule } from './tracing';
13
13
  import { PlatformExtendedOptions } from './types';
14
14
 
@@ -26,7 +26,7 @@ export class PlatformModule implements NestModule {
26
26
  AppMetadataModule.forRoot(options),
27
27
  PlatformConfigModule.forRoot(options),
28
28
  TracingModule.forRoot({ appName: options.name, processing: 'simple' }),
29
- LoggingModule.pureRoot(),
29
+ LoggerInitializingModule,
30
30
  ...(options.modules ?? []),
31
31
  ];
32
32
 
@@ -7,7 +7,10 @@ import type {
7
7
  ValueProvider,
8
8
  } from '@nestjs/common';
9
9
  import type { Resource, ResourceExtractor } from '@rsdk/metadata';
10
- import { PLATFORM_RAW_GLOBAL_METADATA_SCOPE } from '@rsdk/metadata';
10
+ import {
11
+ PLATFORM_RAW_GLOBAL_METADATA_SCOPE,
12
+ RsdkMetadata,
13
+ } from '@rsdk/metadata';
11
14
  import { Assert, NestDefinition } from '@rsdk/nest-tools';
12
15
 
13
16
  import { Config, PlatformConfigModule } from '../config';
@@ -38,7 +41,7 @@ export class ConfigMetadataExtractor implements ResourceExtractor {
38
41
  if (!Array.isArray(args)) {
39
42
  return [];
40
43
  }
41
- const resources: Resource<DynamicModule>[] = [];
44
+ const resources: Resource<any>[] = [];
42
45
 
43
46
  for (const arg of args) {
44
47
  if (!Assert.isObjectOrCtor(arg)) {
@@ -49,11 +52,14 @@ export class ConfigMetadataExtractor implements ResourceExtractor {
49
52
  if (!isConfigSection) {
50
53
  continue;
51
54
  }
52
- resources.push({
55
+ resources.push(<Resource<DynamicModule>>{
53
56
  value: PlatformConfigModule.createConfigProvider(arg),
54
57
  key: arg,
55
58
  scope: PLATFORM_RAW_GLOBAL_METADATA_SCOPE,
56
59
  });
60
+ const configs = RsdkMetadata.get(arg);
61
+
62
+ if (configs) resources.push(...configs);
57
63
  }
58
64
  return resources;
59
65
  }
@@ -25,13 +25,7 @@ export class ProtocolDetector {
25
25
  });
26
26
  }
27
27
  if (matched.length === 0) {
28
- throw new InternalException('No matchers found', {
29
- cause: {
30
- matchers,
31
- matched,
32
- context,
33
- },
34
- });
28
+ return;
35
29
  }
36
30
  return matched[0].tr.getProtocol();
37
31
  }