@rsdk/core 1.0.9 → 1.0.11

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 (85) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/app/platform.app.d.ts +2 -1
  3. package/dist/app/platform.app.js.map +1 -1
  4. package/dist/config/config.const.d.ts +13 -0
  5. package/dist/config/config.const.js +17 -0
  6. package/dist/config/config.const.js.map +1 -0
  7. package/dist/config/metadata/decorators/config-section.decorator.d.ts +4 -0
  8. package/dist/config/metadata/decorators/config-section.decorator.js.map +1 -1
  9. package/dist/config/types.d.ts +3 -1
  10. package/dist/exceptions.handling/global-exceptions.config.js +4 -1
  11. package/dist/exceptions.handling/global-exceptions.config.js.map +1 -1
  12. package/dist/health/autodoc/heath.autodoc-resolver.d.ts +16 -0
  13. package/dist/health/autodoc/heath.autodoc-resolver.js +24 -0
  14. package/dist/health/autodoc/heath.autodoc-resolver.js.map +1 -0
  15. package/dist/health/health.service.d.ts +2 -1
  16. package/dist/health/health.service.js.map +1 -1
  17. package/dist/health/index.d.ts +1 -0
  18. package/dist/health/index.js +3 -0
  19. package/dist/health/index.js.map +1 -1
  20. package/dist/health/metadata/indicator.decorator.d.ts +16 -0
  21. package/dist/health/metadata/indicator.decorator.js +21 -0
  22. package/dist/health/metadata/indicator.decorator.js.map +1 -1
  23. package/dist/health/metadata/indicators.registry.js +0 -3
  24. package/dist/health/metadata/indicators.registry.js.map +1 -1
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.js +3 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/logging/logging.config.js +4 -1
  29. package/dist/logging/logging.config.js.map +1 -1
  30. package/dist/metrics/index.d.ts +2 -0
  31. package/dist/metrics/index.js +3 -1
  32. package/dist/metrics/index.js.map +1 -1
  33. package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.d.ts +8 -0
  34. package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.js +26 -0
  35. package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.js.map +1 -0
  36. package/dist/metrics/metadata/decorators/metric.decorator.d.ts +12 -5
  37. package/dist/metrics/metadata/decorators/metric.decorator.js.map +1 -1
  38. package/dist/metrics/metadata/index.d.ts +2 -0
  39. package/dist/metrics/metadata/index.js +3 -0
  40. package/dist/metrics/metadata/index.js.map +1 -1
  41. package/dist/metrics/metadata/types.d.ts +8 -0
  42. package/dist/metrics/metadata/types.js +3 -0
  43. package/dist/metrics/metadata/types.js.map +1 -0
  44. package/dist/metrics/metrics.config.js +5 -1
  45. package/dist/metrics/metrics.config.js.map +1 -1
  46. package/dist/metrics/metrics.module.js +15 -3
  47. package/dist/metrics/metrics.module.js.map +1 -1
  48. package/dist/platform.context.d.ts +5 -3
  49. package/dist/platform.context.js +31 -14
  50. package/dist/platform.context.js.map +1 -1
  51. package/dist/tracing/tracing.config.js +4 -1
  52. package/dist/tracing/tracing.config.js.map +1 -1
  53. package/dist/transport/transport.module.js +2 -2
  54. package/dist/transport/transport.module.js.map +1 -1
  55. package/dist/types/metadata.d.ts +7 -1
  56. package/dist/types/metadata.js.map +1 -1
  57. package/dist/types/options.d.ts +3 -1
  58. package/package.json +17 -15
  59. package/src/app/platform.app.ts +1 -1
  60. package/src/config/config.const.ts +13 -0
  61. package/src/config/metadata/decorators/config-section.decorator.ts +4 -0
  62. package/src/config/parsers/boolean/bool.spec.ts +1 -2
  63. package/src/config/types.ts +3 -1
  64. package/src/exceptions.handling/global-exceptions.config.ts +4 -1
  65. package/src/health/autodoc/heath.autodoc-resolver.ts +33 -0
  66. package/src/health/health.service.ts +2 -1
  67. package/src/health/index.ts +1 -0
  68. package/src/health/metadata/indicator.decorator.ts +34 -0
  69. package/src/health/metadata/indicators.registry.ts +0 -4
  70. package/src/index.ts +2 -0
  71. package/src/logging/logging.config.ts +4 -1
  72. package/src/metrics/index.ts +2 -0
  73. package/src/metrics/metadata/autodoc/metrics.autodoc-resolver.ts +30 -0
  74. package/src/metrics/metadata/decorators/metric.decorator.ts +14 -6
  75. package/src/metrics/metadata/index.ts +3 -0
  76. package/src/metrics/metadata/types.ts +11 -0
  77. package/src/metrics/metrics.config.ts +5 -1
  78. package/src/metrics/metrics.module.ts +23 -2
  79. package/src/platform.context.ts +40 -21
  80. package/src/tracing/tracing.config.ts +4 -1
  81. package/src/transport/transport.module.ts +3 -2
  82. package/src/types/metadata.ts +8 -1
  83. package/src/types/options.ts +3 -1
  84. package/tsconfig.json +0 -1
  85. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -2,18 +2,18 @@ import type { DynamicModule } from '@nestjs/common';
2
2
  import type { INestApplication } from '@nestjs/common/interfaces';
3
3
  import type { NestApplicationOptions } from '@nestjs/common/interfaces/nest-application-options.interface';
4
4
  import type { AbstractHttpAdapter } from '@nestjs/core';
5
- import type { PlatformAppMetadata, PlatformOptions } from './types';
5
+ import type { PlatformAppMetadata, PlatformExtendedOptions, PlatformOptions } from './types';
6
6
  /**
7
7
  * Агрегат для хранения опций приложения, а также методы для конфигурации и запуска приложения
8
8
  */
9
9
  export declare class PlatformContext {
10
10
  readonly options: PlatformOptions;
11
11
  readonly logger: import("@rsdk/logging").ILogger;
12
- readonly root: DynamicModule;
13
12
  private microservices;
14
13
  private readonly httpTransport;
15
14
  private readonly httpAdapter;
16
- private readonly extendedOptions;
15
+ private _extendedOptions;
16
+ private _root;
17
17
  /**
18
18
  * Создаёт контекст проводя базовые проверки
19
19
  * - все транспорты совместимы между собой
@@ -23,6 +23,8 @@ export declare class PlatformContext {
23
23
  * @param options
24
24
  */
25
25
  constructor(options: PlatformOptions);
26
+ get root(): DynamicModule;
27
+ get extendedOptions(): PlatformExtendedOptions;
26
28
  private static assertPluginCompatability;
27
29
  private static assertTransportCompatability;
28
30
  /**
@@ -16,11 +16,11 @@ const types_1 = require("./types");
16
16
  class PlatformContext {
17
17
  options;
18
18
  logger = logging_1.LoggerFactory.create('App');
19
- root;
20
19
  microservices;
21
20
  httpTransport;
22
21
  httpAdapter;
23
- extendedOptions;
22
+ _extendedOptions;
23
+ _root;
24
24
  /**
25
25
  * Создаёт контекст проводя базовые проверки
26
26
  * - все транспорты совместимы между собой
@@ -33,22 +33,35 @@ class PlatformContext {
33
33
  this.options = options;
34
34
  PlatformContext.assertTransportCompatability(options);
35
35
  PlatformContext.assertPluginCompatability(options);
36
- const { name, description, version } = manifest_1.Manifest.getData(options.manifestPath);
36
+ this.httpTransport = options.transports?.find?.(types_1.isHttpTransport);
37
+ this.httpAdapter =
38
+ this.httpTransport?.getAdapter() ?? new noop_http_adapter_1.NoopHttpAdapter();
39
+ }
40
+ get root() {
41
+ if (this._root) {
42
+ return this._root;
43
+ }
44
+ config_1.PlatformConfigModule.bootstrap({
45
+ ...(this.extendedOptions.config ?? {}),
46
+ appName: this.extendedOptions.name,
47
+ });
48
+ this._root = platform_module_1.PlatformModule.forRoot(this.extendedOptions);
49
+ return this._root;
50
+ }
51
+ get extendedOptions() {
52
+ if (this._extendedOptions) {
53
+ return this._extendedOptions;
54
+ }
55
+ const manifestData = manifest_1.Manifest.getData(this.options.manifestPath);
56
+ const { name, description, version } = manifestData;
37
57
  const extendedOptions = {
38
58
  description,
39
59
  name,
40
60
  version,
41
- ...options,
61
+ ...this.options,
42
62
  };
43
- this.extendedOptions = extendedOptions;
44
- config_1.PlatformConfigModule.bootstrap({
45
- ...(extendedOptions.config ?? {}),
46
- appName: extendedOptions.name,
47
- });
48
- this.httpTransport = options.transports?.find?.(types_1.isHttpTransport);
49
- this.httpAdapter =
50
- this.httpTransport?.getAdapter() ?? new noop_http_adapter_1.NoopHttpAdapter();
51
- this.root = platform_module_1.PlatformModule.forRoot(this.extendedOptions);
63
+ this._extendedOptions = extendedOptions;
64
+ return this._extendedOptions;
52
65
  }
53
66
  static assertPluginCompatability(options) {
54
67
  if (!options.plugins) {
@@ -82,11 +95,15 @@ class PlatformContext {
82
95
  const protocols = (options?.transports ?? []).map((x) => x.getProtocol());
83
96
  return {
84
97
  name: options.name,
98
+ version: options.version,
85
99
  description: options.description,
86
100
  protocols: protocols,
87
101
  config: {
88
102
  prefix: options.name,
89
- sections: [...confMetadata.sections.values()].map(types_1.transformSectionMetadata),
103
+ sections: [...confMetadata.sections.entries()].map(([section, metadata]) => (0, types_1.transformSectionMetadata)({
104
+ ...metadata,
105
+ constructorName: section.name,
106
+ })),
90
107
  sources: [...confMetadata.sources.values()],
91
108
  properties: [...confMetadata.properties.values()].map(types_1.serializePropertyMetadata),
92
109
  },
@@ -1 +1 @@
1
- {"version":3,"file":"platform.context.js","sourceRoot":"","sources":["../src/platform.context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.context.js","sourceRoot":"","sources":["../src/platform.context.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TracingModuleConfig = void 0;
13
13
  const config_1 = require("../config");
14
+ const config_const_1 = require("../config/config.const");
14
15
  let TracingModuleConfig = class TracingModuleConfig extends config_1.Config {
15
16
  enabled;
16
17
  collectorUrl;
@@ -30,7 +31,9 @@ __decorate([
30
31
  __metadata("design:type", URL)
31
32
  ], TracingModuleConfig.prototype, "collectorUrl", void 0);
32
33
  TracingModuleConfig = __decorate([
33
- (0, config_1.ConfigSection)()
34
+ (0, config_1.ConfigSection)({
35
+ tags: [config_const_1.ConfigTag.infrastructure, config_const_1.ConfigTag.tracing],
36
+ })
34
37
  ], TracingModuleConfig);
35
38
  exports.TracingModuleConfig = TracingModuleConfig;
36
39
  //# sourceMappingURL=tracing.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.config.js","sourceRoot":"","sources":["../../src/tracing/tracing.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAMmB;AAGZ,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,eAAM;IAK7C,OAAO,CAAW;IAMlB,YAAY,CAAO;CACpB,CAAA;AAXC;IAAC,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,IAAI,mBAAU,EAAE,EAAE;QAC7C,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,4BAA4B;KAC1C,CAAC;;oDACgB;AAElB;IAAC,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,IAAI,kBAAS,EAAE,EAAE;QAClD,YAAY,EAAE,IAAI,GAAG,CAAC,iCAAiC,CAAC;QACxD,WAAW,EAAE,0CAA0C;KACxD,CAAC;8BACa,GAAG;yDAAC;AAXR,mBAAmB;IAD/B,IAAA,sBAAa,GAAE;GACH,mBAAmB,CAY/B;AAZY,kDAAmB"}
1
+ {"version":3,"file":"tracing.config.js","sourceRoot":"","sources":["../../src/tracing/tracing.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAMmB;AACnB,yDAAmD;AAK5C,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,eAAM;IAK7C,OAAO,CAAW;IAMlB,YAAY,CAAO;CACpB,CAAA;AAXC;IAAC,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,IAAI,mBAAU,EAAE,EAAE;QAC7C,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,4BAA4B;KAC1C,CAAC;;oDACgB;AAElB;IAAC,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,IAAI,kBAAS,EAAE,EAAE;QAClD,YAAY,EAAE,IAAI,GAAG,CAAC,iCAAiC,CAAC;QACxD,WAAW,EAAE,0CAA0C;KACxD,CAAC;8BACa,GAAG;yDAAC;AAXR,mBAAmB;IAH/B,IAAA,sBAAa,EAAC;QACb,IAAI,EAAE,CAAC,wBAAS,CAAC,cAAc,EAAE,wBAAS,CAAC,OAAO,CAAC;KACpD,CAAC;GACW,mBAAmB,CAY/B;AAZY,kDAAmB"}
@@ -39,11 +39,11 @@ class PlatformTransportModule {
39
39
  formatters: [
40
40
  ...transports.map((x) => x.getErrorsFormatter()),
41
41
  ...(options.plugins?.map((x) => x.errorFormatter?.()) || []),
42
- ].filter((x) => x),
42
+ ].filter((x) => Boolean(x)),
43
43
  senders: [
44
44
  ...transports.map((x) => x.getErrorsSender?.()),
45
45
  ...(options.plugins?.map((x) => x.errorSender?.()) || []),
46
- ].filter((x) => x),
46
+ ].filter((x) => Boolean(x)),
47
47
  transformers: [
48
48
  ...(0, lodash_1.flatten)(transports.map((x) => x.getErrorTransformers())),
49
49
  ...(0, lodash_1.flatten)(options.plugins?.map((x) => x.errorTransformers?.() || [])),
@@ -1 +1 @@
1
- {"version":3,"file":"transport.module.js","sourceRoot":"","sources":["../../src/transport/transport.module.ts"],"names":[],"mappings":";;;AACA,mCAAiC;AAEjC,gEAAgE;AAChE,sCAAyC;AACzC,wCAA2C;AAE3C,oCAA8C;AAE9C,MAAa,uBAAuB;IAClC,MAAM,CAAC,UAAU,CAAC,OAAgC;QAChD,OAAO;YACL,OAAO,EAAE;gBACP,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACjD,uBAAuB,CAAC,WAAW,CAAC,OAAO,CAAC;gBAC5C,uBAAuB,CAAC,sBAAsB,CAAC,OAAO,CAAC;aACxD;YACD,MAAM,EAAE,uBAAuB;SAChC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,OAAgC;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAK,EAAY,CAAC;QAEvD,OAAO,uBAAa,CAAC,OAAO,CAAC;YAC3B,WAAW,EAAE,UAAU;iBACpB,MAAM,CAAC,0BAAkB,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAC7B,OAAgC;QAEhC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAK,EAAY,CAAC;QAEvD,OAAO,qBAAY,CAAC,OAAO,CAAC;YAC1B,WAAW,EAAE,UAAU;iBACpB,MAAM,CAAC,0BAAkB,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,sBAAsB,CACnC,OAAgC;QAEhC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAE5C,OAAO,4CAAsB,CAAC,OAAO,CAAC;YACpC,UAAU,EAAE;gBACV,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;gBAChD,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;aAC7D,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClB,OAAO,EAAE;gBACP,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC;gBAC/C,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;aAC1D,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClB,YAAY,EAAE;gBACZ,GAAG,IAAA,gBAAO,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBAC3D,GAAG,IAAA,gBAAO,EAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aACvE;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAtDD,0DAsDC"}
1
+ {"version":3,"file":"transport.module.js","sourceRoot":"","sources":["../../src/transport/transport.module.ts"],"names":[],"mappings":";;;AACA,mCAAiC;AAGjC,gEAAgE;AAChE,sCAAyC;AACzC,wCAA2C;AAE3C,oCAA8C;AAE9C,MAAa,uBAAuB;IAClC,MAAM,CAAC,UAAU,CAAC,OAAgC;QAChD,OAAO;YACL,OAAO,EAAE;gBACP,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACjD,uBAAuB,CAAC,WAAW,CAAC,OAAO,CAAC;gBAC5C,uBAAuB,CAAC,sBAAsB,CAAC,OAAO,CAAC;aACxD;YACD,MAAM,EAAE,uBAAuB;SAChC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,OAAgC;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAK,EAAY,CAAC;QAEvD,OAAO,uBAAa,CAAC,OAAO,CAAC;YAC3B,WAAW,EAAE,UAAU;iBACpB,MAAM,CAAC,0BAAkB,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAC7B,OAAgC;QAEhC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAK,EAAY,CAAC;QAEvD,OAAO,qBAAY,CAAC,OAAO,CAAC;YAC1B,WAAW,EAAE,UAAU;iBACpB,MAAM,CAAC,0BAAkB,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,sBAAsB,CACnC,OAAgC;QAEhC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAE5C,OAAO,4CAAsB,CAAC,OAAO,CAAC;YACpC,UAAU,EAAE;gBACV,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;gBAChD,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;aAC7D,CAAC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClD,OAAO,EAAE;gBACP,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC;gBAC/C,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;aAC1D,CAAC,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/C,YAAY,EAAE;gBACZ,GAAG,IAAA,gBAAO,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBAC3D,GAAG,IAAA,gBAAO,EAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aACvE;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAtDD,0DAsDC"}
@@ -8,7 +8,9 @@ export declare const serializePropertyMetadata: (metadata: PropertyMetadata) =>
8
8
  export type SerializableSectionMetadata = Omit<SectionMetadata, 'properties'> & {
9
9
  properties: SerializablePropertyMetadata[];
10
10
  };
11
- export declare const transformSectionMetadata: ({ properties, ...rest }: SectionMetadata) => SerializableSectionMetadata;
11
+ export declare const transformSectionMetadata: ({ properties, ...rest }: SectionMetadata & {
12
+ constructorName: string;
13
+ }) => SerializableSectionMetadata;
12
14
  export type SerializableConfigMetadata = {
13
15
  prefix: string;
14
16
  sources: SourceMetadata[];
@@ -27,6 +29,10 @@ export interface PlatformAppMetadata {
27
29
  * Application description
28
30
  */
29
31
  description: string;
32
+ /**
33
+ * Application version
34
+ */
35
+ version: string;
30
36
  /**
31
37
  * Supported protocols
32
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":";;;AACA,yCAAmD;AAiB5C,MAAM,yBAAyB,GAAG,CACvC,QAA0B,EACI,EAAE;IAChC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAEnD,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YAEnB,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;SAClC;QACD,GAAG,CAAC,IAAA,eAAM,EAAC,QAAQ,EAAE,cAAc,CAAC,IAAI;YACtC,+CAA+C;YAC/C,YAAY,EAAE,IAAA,oBAAW,EAAC,YAAY,CAAC;gBACrC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC7B,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC9D,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE;SAC7B,CAAC;KAC6B,CAAC;AACpC,CAAC,CAAC;AArBW,QAAA,yBAAyB,6BAqBpC;AASK,MAAM,wBAAwB,GAAG,CAAC,EACvC,UAAU,EACV,GAAG,IAAI,EACS,EAA+B,EAAE,CAAC,CAAC;IACnD,GAAG,IAAI;IACP,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,iCAAyB,CAAC;CACrE,CAAC,CAAC;AAPU,QAAA,wBAAwB,4BAOlC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":";;;AACA,yCAAmD;AAiB5C,MAAM,yBAAyB,GAAG,CACvC,QAA0B,EACI,EAAE;IAChC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAEnD,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YAEnB,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;SAClC;QACD,GAAG,CAAC,IAAA,eAAM,EAAC,QAAQ,EAAE,cAAc,CAAC,IAAI;YACtC,+CAA+C;YAC/C,YAAY,EAAE,IAAA,oBAAW,EAAC,YAAY,CAAC;gBACrC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC7B,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC9D,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE;SAC7B,CAAC;KAC6B,CAAC;AACpC,CAAC,CAAC;AArBW,QAAA,yBAAyB,6BAqBpC;AASK,MAAM,wBAAwB,GAAG,CAAC,EACvC,UAAU,EACV,GAAG,IAAI,EAGR,EAA+B,EAAE,CAAC,CAAC;IAClC,GAAG,IAAI;IACP,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,iCAAyB,CAAC;CACrE,CAAC,CAAC;AATU,QAAA,wBAAwB,4BASlC"}
@@ -1,3 +1,4 @@
1
+ import type { DynamicModule } from '@nestjs/common';
1
2
  import type { Constructor, RequiredFields } from '@rsdk/common';
2
3
  import type { ConfigModuleOptions } from '../config';
3
4
  import type { PlatformAppPlugin } from './plugins';
@@ -5,7 +6,8 @@ import type { IPrimaryTransport, ITransport } from './transports';
5
6
  /**
6
7
  * Not empty collection of modules
7
8
  */
8
- type Modules = [Constructor, ...Constructor[]];
9
+ type Module = DynamicModule | Constructor;
10
+ type Modules = [Module, ...Module[]];
9
11
  export interface ManifestData {
10
12
  /**
11
13
  * Application name
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/core",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Nestjs based microservice chassis",
5
5
  "license": "Apache License 2.0",
6
6
  "publishConfig": {
@@ -11,29 +11,31 @@
11
11
  },
12
12
  "main": "dist/index.js",
13
13
  "dependencies": {
14
- "@opentelemetry/api": "1.4.0",
15
- "@opentelemetry/auto-instrumentations-node": "0.36.1",
16
- "@opentelemetry/context-async-hooks": "1.9.1",
17
- "@opentelemetry/core": "1.9.1",
18
- "@opentelemetry/exporter-trace-otlp-http": "0.35.1",
19
- "@opentelemetry/propagator-b3": "1.9.1",
20
- "@opentelemetry/resources": "1.9.1",
21
- "@opentelemetry/sdk-node": "0.35.1",
22
- "@opentelemetry/sdk-trace-base": "1.9.1",
23
- "@opentelemetry/semantic-conventions": "1.9.1",
14
+ "@opentelemetry/api": "1.4.1",
15
+ "@opentelemetry/auto-instrumentations-node": "0.37.0",
16
+ "@opentelemetry/context-async-hooks": "1.13.0",
17
+ "@opentelemetry/core": "1.13.0",
18
+ "@opentelemetry/exporter-trace-otlp-http": "0.39.1",
19
+ "@opentelemetry/propagator-b3": "1.13.0",
20
+ "@opentelemetry/resources": "1.13.0",
21
+ "@opentelemetry/sdk-node": "^0.39.1",
22
+ "@opentelemetry/sdk-trace-base": "1.13.0",
23
+ "@opentelemetry/semantic-conventions": "1.13.0",
24
24
  "prom-client": "^14.2.0"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "@nestjs/common": "^9.0.0",
28
28
  "@nestjs/core": "^9.0.0",
29
29
  "@nestjs/microservices": "^9.0.0",
30
- "@rsdk/common": "^1.0.9",
31
- "@rsdk/decorators": "^1.0.9",
32
- "@rsdk/logging": "^1.0.9",
30
+ "@rsdk/autodoc-protocol": "^1.0.11",
31
+ "@rsdk/common": "^1.0.11",
32
+ "@rsdk/decorators": "^1.0.11",
33
+ "@rsdk/logging": "^1.0.11",
34
+ "@rsdk/metadata": "^1.0.11",
33
35
  "axios": "^1.1.3",
34
36
  "lodash": "^4.17.21",
35
37
  "reflect-metadata": "^0.1.13",
36
38
  "rxjs": "^7.0.0"
37
39
  },
38
- "gitHead": "6bb1f85ba05ce2f0b1f724537a78d11eab072942"
40
+ "gitHead": "b056adb0a9b242c025252ae78b4df7adb5cec932"
39
41
  }
@@ -15,7 +15,7 @@ import type { PlatformAppMetadata, PlatformAppOptions } from '../types';
15
15
  export class PlatformApp {
16
16
  private static logger = LoggerFactory.create(PlatformApp);
17
17
 
18
- private readonly context: PlatformContext;
18
+ readonly context: PlatformContext;
19
19
 
20
20
  static {
21
21
  const { logger } = PlatformApp;
@@ -0,0 +1,13 @@
1
+ export const ConfigTag = {
2
+ infrastructure: 'infrastructure',
3
+ logging: 'logging',
4
+ errorHandling: 'error-handling',
5
+ metric: 'metric',
6
+ tracing: 'tracing',
7
+ storage: 'storage',
8
+ transport: 'transport',
9
+ graphql: 'graphql',
10
+ http: 'http',
11
+ grpcServer: 'grpc-server',
12
+ natsHemera: 'nats-hemera',
13
+ } as const;
@@ -9,6 +9,10 @@ import { CONFIG_METADATA_KEY } from './property.decorator';
9
9
  export interface ConfigSectionOptions {
10
10
  name?: string;
11
11
  description?: string;
12
+ /**
13
+ * Используются только в документации
14
+ */
15
+ tags?: string[];
12
16
  }
13
17
 
14
18
  /**
@@ -1,4 +1,3 @@
1
1
  describe('BoolParser', () => {
2
- /* eslint-disable @typescript-eslint/no-empty-function */
3
2
  it('See tests for Convert.boolean() in @rsdk/common', () => expect(true).toBe(true))
4
- })
3
+ })
@@ -45,11 +45,13 @@ export interface PropertyMetadata<T extends ConfigValue = ConfigValue> {
45
45
  }
46
46
 
47
47
  export interface SectionMetadata {
48
- name: string;
48
+ name?: string;
49
+ constructorName: string;
49
50
  // TODO: Why use Record instead of map here
50
51
  // TODO: Why symbol here
51
52
  properties: Record<string | symbol, PropertyMetadata>;
52
53
  description?: string;
54
+ tags?: string[];
53
55
  }
54
56
 
55
57
  export interface SourceMetadata {
@@ -1,8 +1,11 @@
1
1
  import { text } from '@rsdk/common';
2
2
 
3
3
  import { BoolParser, Config, ConfigSection, Property } from '../config';
4
+ import { ConfigTag } from '../config/config.const';
4
5
 
5
- @ConfigSection()
6
+ @ConfigSection({
7
+ tags: [ConfigTag.infrastructure, ConfigTag.errorHandling],
8
+ })
6
9
  export class GlobalExceptionsConfig extends Config {
7
10
  @Property('VERBOSE_ERRORS', new BoolParser(), {
8
11
  defaultValue: true,
@@ -0,0 +1,33 @@
1
+ import type { DocumentNode, DocumentResolver } from '@rsdk/autodoc-protocol';
2
+ import { Composite, Table } from '@rsdk/autodoc-protocol';
3
+ import type { RsdkMetadata } from '@rsdk/metadata';
4
+
5
+ import type { IndicatorOptions } from '../metadata';
6
+
7
+ export class IndicatorAutodoc implements DocumentResolver {
8
+ constructor(
9
+ readonly rsdkMetadata: RsdkMetadata<{
10
+ key: string;
11
+ options: IndicatorOptions;
12
+ constructorName: string;
13
+ }>,
14
+ ) {}
15
+
16
+ getNode(): DocumentNode | null {
17
+ const resources = this.rsdkMetadata.get();
18
+ if (!resources) {
19
+ return null;
20
+ }
21
+ return new Composite(
22
+ new Table(
23
+ resources.map(({ value }) => ({
24
+ key: value.key,
25
+ scope: value.options.scope ?? '-',
26
+ description: value.options.description ?? '-',
27
+ name: value.constructorName,
28
+ })),
29
+ ),
30
+ 'Health indicators',
31
+ );
32
+ }
33
+ }
@@ -1,3 +1,4 @@
1
+ import type { OnModuleInit } from '@nestjs/common';
1
2
  import { Injectable } from '@nestjs/common';
2
3
  import { ModuleRef } from '@nestjs/core';
3
4
  import type { Constructor } from '@rsdk/common';
@@ -15,7 +16,7 @@ import type {
15
16
  } from './types';
16
17
 
17
18
  @Injectable()
18
- export class HealthChecksService {
19
+ export class HealthChecksService implements OnModuleInit {
19
20
  private readonly indicators: ResolvedIndicators = { common: [] };
20
21
  private readonly indicatorNames = new Map<HealthIndicator, string>();
21
22
 
@@ -4,3 +4,4 @@ export * from './indicators.abstract';
4
4
  export * from './metadata/indicator.decorator';
5
5
  export * from './types';
6
6
  export * from './helpers';
7
+ export { IndicatorAutodoc as IndicatorAutodocResolver } from './autodoc/heath.autodoc-resolver';
@@ -1,16 +1,36 @@
1
1
  /* eslint-disable @typescript-eslint/ban-types */
2
2
 
3
+ import { AutodocMetadata } from '@rsdk/autodoc-protocol';
3
4
  import type { Constructor } from '@rsdk/common';
5
+ import { RsdkMetadata } from '@rsdk/metadata';
4
6
 
7
+ import { IndicatorAutodoc } from '../autodoc/heath.autodoc-resolver';
5
8
  import type { HealthIndicator } from '../types';
6
9
 
7
10
  import { IndicatorsRegistry } from './indicators.registry';
8
11
 
9
12
  export interface IndicatorOptions {
13
+ /**
14
+ * Description
15
+ */
10
16
  description?: string;
17
+
18
+ /**
19
+ * FIXME: WTF?
20
+ */
11
21
  scope?: string;
12
22
  }
13
23
 
24
+ /**
25
+ * Registers health indicator. Indicators should be added to application
26
+ * modules as providers and use common DI to inject necessary services
27
+ * (api, database clients, etc.)
28
+ * @param {string} key Healthcheck response is object where each key
29
+ * is a specific indicator. Thus you can use key to recognize an
30
+ * indicator in healthcheck response
31
+ * @param {IndicatorOptions} options Indicator metadata
32
+ * @returns {ClassDecorator}
33
+ */
14
34
  export const Indicator = (
15
35
  key: string,
16
36
  options: IndicatorOptions = {},
@@ -21,5 +41,19 @@ export const Indicator = (
21
41
  scope: 'common',
22
42
  ...options,
23
43
  });
44
+ const rsdkMetadata = new RsdkMetadata<{
45
+ key: string;
46
+ options: IndicatorOptions;
47
+ constructorName: string;
48
+ }>(target, 'health-indicator');
49
+
50
+ rsdkMetadata.add({
51
+ key,
52
+ options,
53
+ constructorName: target.name,
54
+ });
55
+ const autodocMetadata = new AutodocMetadata(rsdkMetadata);
56
+
57
+ autodocMetadata.defineResolver(new IndicatorAutodoc(rsdkMetadata));
24
58
  };
25
59
  };
@@ -23,10 +23,6 @@ export class IndicatorsRegistry {
23
23
  throw new DoubleInitException('Health indicator', target.name);
24
24
  }
25
25
 
26
- this.logger.info(`Registering indicator: ${target.name}`, {
27
- indicator: target.name,
28
- });
29
-
30
26
  this.indicators.set(target, options);
31
27
  }
32
28
 
package/src/index.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export { ConfigTag } from './config/config.const';
2
+
1
3
  export { PlatformContext } from './platform.context';
2
4
 
3
5
  export * from './config';
@@ -8,8 +8,11 @@ import {
8
8
  Property,
9
9
  StringParser,
10
10
  } from '../config';
11
+ import { ConfigTag } from '../config/config.const';
11
12
 
12
- @ConfigSection()
13
+ @ConfigSection({
14
+ tags: [ConfigTag.infrastructure, ConfigTag.logging],
15
+ })
13
16
  export class LoggingConfig extends Config {
14
17
  @Property('LOG_LEVEL', new EnumParser(LogLevel), {
15
18
  // TODO: Can pass anything instead of enum value. Need to handle this!
@@ -2,3 +2,5 @@ export { Counter, Gauge, Histogram, Summary, register } from 'prom-client';
2
2
  export * from './metrics.module';
3
3
  export * from './types';
4
4
  export * from './metadata';
5
+ export { MetricAutodocResolver } from './metadata';
6
+ export { MetricRsdkMetadata } from './metadata';
@@ -0,0 +1,30 @@
1
+ import type { DocumentNode, DocumentResolver } from '@rsdk/autodoc-protocol';
2
+ import { Composite, Table } from '@rsdk/autodoc-protocol';
3
+ import type { RsdkMetadata } from '@rsdk/metadata';
4
+
5
+ import type { MetricRsdkMetadata } from '../types';
6
+
7
+ export class MetricAutodocResolver implements DocumentResolver {
8
+ constructor(readonly rsdkMetadata: RsdkMetadata<MetricRsdkMetadata>) {}
9
+
10
+ getNode(): DocumentNode | null {
11
+ const resources = this.rsdkMetadata.get();
12
+ if (!resources) {
13
+ return null;
14
+ }
15
+
16
+ return new Composite(
17
+ new Table(
18
+ resources.map(({ value }) => {
19
+ return {
20
+ name: value.metadata.name,
21
+ description: value.metadata.description,
22
+ type: value.type,
23
+ controllerName: value.metricController.name,
24
+ };
25
+ }),
26
+ ),
27
+ 'Metrics',
28
+ );
29
+ }
30
+ }
@@ -11,13 +11,21 @@ import type {
11
11
  } from '../../types';
12
12
  import { MetricsRegistry } from '../metrics.registry';
13
13
 
14
+ export type MetricType = 'counter' | 'gauge' | 'histogram' | 'summary';
15
+
14
16
  /**
15
- * Registers metric's metadata, which allows
16
- * MetricsModule to instantiate it and export as
17
- * a provider
17
+ * Registers a custom metric. Metrics a added to MetricsModules inside
18
+ * the core, so you **should NOT** use them as providers in your application.
19
+ *
20
+ * Conventional usage is to create a class that extends one of prom-client
21
+ * metric: Counter, Gauge, Histogram or Summary, and mark it with this
22
+ * decorator. The class should stay empty - it's is used only as a "host"
23
+ * for Metrics decorator.
18
24
  *
19
- * @param type type of metric
20
- * @param metadata respective metadata
25
+ * @param {counter|gauge|histogram|summary} type type of metric
26
+ * @param {CounterMetadata|GaugeMetadata|HistogramMetadata|SummaryMetadata} metadata
27
+ * respective metadata
28
+ * @returns {ClassDecorator}
21
29
  */
22
30
  export function Metric(
23
31
  type: 'counter',
@@ -36,7 +44,7 @@ export function Metric(
36
44
  metadata: OmitType<SummaryMetadata>,
37
45
  ): ClassDecorator;
38
46
  export function Metric(
39
- type: 'counter' | 'gauge' | 'histogram' | 'summary',
47
+ type: MetricType,
40
48
  metadata: OmitType<MetricMetadata>,
41
49
  ): ClassDecorator {
42
50
  return function (target: Function): void {
@@ -1,2 +1,5 @@
1
1
  export * from './metrics.registry';
2
2
  export * from './decorators';
3
+ export { MetricAutodocResolver } from './autodoc/metrics.autodoc-resolver';
4
+
5
+ export { MetricRsdkMetadata } from './types';
@@ -0,0 +1,11 @@
1
+ import type { Constructor } from '@rsdk/common';
2
+
3
+ import type { AnyMetric, MetricMetadata, OmitType } from '../types';
4
+
5
+ import type { MetricType } from './decorators';
6
+
7
+ export type MetricRsdkMetadata = {
8
+ type: MetricType;
9
+ metadata: OmitType<MetricMetadata>;
10
+ metricController: Constructor<AnyMetric>;
11
+ };
@@ -1,6 +1,10 @@
1
1
  import { BoolParser, Config, ConfigSection, Property } from '../config';
2
+ import { ConfigTag } from '../config/config.const';
2
3
 
3
- @ConfigSection({ name: 'Metrics configuration' })
4
+ @ConfigSection({
5
+ name: 'Metrics configuration',
6
+ tags: [ConfigTag.infrastructure, ConfigTag.metric],
7
+ })
4
8
  export class MetricsModuleConfig extends Config {
5
9
  @Property('METRICS_ENABLED', new BoolParser(), {
6
10
  defaultValue: true,