@rsdk/core 5.7.0-next.3 → 6.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/metadata/decorators/declare-property.decorator.d.ts +2 -1
- package/dist/config/metadata/decorators/declare-property.decorator.js.map +1 -1
- package/dist/config/metadata/decorators/property.decorator.d.ts +2 -1
- package/dist/config/metadata/decorators/property.decorator.js.map +1 -1
- package/dist/config/sources/implementations/json-file.source.js +1 -2
- package/dist/config/sources/implementations/json-file.source.js.map +1 -1
- package/dist/config/sources/implementations/relodable-json-file.source.js +1 -2
- package/dist/config/sources/implementations/relodable-json-file.source.js.map +1 -1
- package/dist/config/types.d.ts +1 -20
- package/dist/config/types.js.map +1 -1
- package/dist/exceptions.handling/default.formatter.d.ts +6 -0
- package/dist/exceptions.handling/default.formatter.js +12 -0
- package/dist/exceptions.handling/default.formatter.js.map +1 -0
- package/dist/exceptions.handling/default.sender.d.ts +8 -0
- package/dist/exceptions.handling/default.sender.js +13 -0
- package/dist/exceptions.handling/default.sender.js.map +1 -0
- package/dist/exceptions.handling/global-exceptions.config.js +1 -1
- package/dist/exceptions.handling/global-exceptions.config.js.map +1 -1
- package/dist/exceptions.handling/global-exceptions.filter.d.ts +8 -11
- package/dist/exceptions.handling/global-exceptions.filter.js +38 -56
- package/dist/exceptions.handling/global-exceptions.filter.js.map +1 -1
- package/dist/exceptions.handling/global-exceptions.interceptor.d.ts +18 -0
- package/dist/exceptions.handling/global-exceptions.interceptor.js +57 -0
- package/dist/exceptions.handling/global-exceptions.interceptor.js.map +1 -0
- package/dist/exceptions.handling/global-exceptions.module.d.ts +2 -23
- package/dist/exceptions.handling/global-exceptions.module.js +38 -3
- package/dist/exceptions.handling/global-exceptions.module.js.map +1 -1
- package/dist/exceptions.handling/types.d.ts +2 -2
- package/dist/index.d.ts +31 -2
- package/dist/index.js +34 -1
- package/dist/index.js.map +1 -1
- package/dist/logging/constants.d.ts +1 -0
- package/dist/logging/constants.js +5 -0
- package/dist/logging/constants.js.map +1 -0
- package/dist/logging/decorators/inject-logger.decorator.js +2 -2
- package/dist/logging/decorators/inject-logger.decorator.js.map +1 -1
- package/dist/logging/formatters/default.formatter.d.ts +7 -0
- package/dist/logging/formatters/default.formatter.js +17 -0
- package/dist/logging/formatters/default.formatter.js.map +1 -0
- package/dist/logging/formatters/index.d.ts +2 -0
- package/dist/{config/parsers/array → logging/formatters}/index.js +2 -1
- package/dist/logging/formatters/index.js.map +1 -0
- package/dist/logging/formatters/interfaces.d.ts +23 -0
- package/dist/logging/formatters/interfaces.js +3 -0
- package/dist/logging/formatters/interfaces.js.map +1 -0
- package/dist/logging/index.d.ts +3 -2
- package/dist/logging/index.js +6 -4
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/logging-core.module.d.ts +10 -0
- package/dist/logging/{logger-initializing.module.js → logging-core.module.js} +46 -10
- package/dist/logging/logging-core.module.js.map +1 -0
- package/dist/logging/{logging.module.d.ts → logging-instances.module.d.ts} +1 -1
- package/dist/logging/{logging.module.js → logging-instances.module.js} +8 -9
- package/dist/logging/logging-instances.module.js.map +1 -0
- package/dist/logging/logging.config.d.ts +3 -0
- package/dist/logging/logging.config.js +29 -4
- package/dist/logging/logging.config.js.map +1 -1
- package/dist/logging/logging.interceptor.d.ts +37 -0
- package/dist/logging/logging.interceptor.js +124 -0
- package/dist/logging/logging.interceptor.js.map +1 -0
- package/dist/metrics/metrics.config.js +3 -2
- package/dist/metrics/metrics.config.js.map +1 -1
- package/dist/platform.context.d.ts +1 -1
- package/dist/platform.context.js +3 -2
- package/dist/platform.context.js.map +1 -1
- package/dist/platform.module.js +19 -6
- package/dist/platform.module.js.map +1 -1
- package/dist/tracing/constants.d.ts +4 -5
- package/dist/tracing/constants.js +9 -7
- package/dist/tracing/constants.js.map +1 -1
- package/dist/tracing/index.d.ts +1 -0
- package/dist/tracing/index.js +1 -0
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/request-id/index.d.ts +4 -0
- package/dist/{config/parsers/enum → tracing/request-id}/index.js +4 -1
- package/dist/tracing/request-id/index.js.map +1 -0
- package/dist/tracing/request-id/metadata.helpers.d.ts +13 -0
- package/dist/tracing/request-id/metadata.helpers.js +23 -0
- package/dist/tracing/request-id/metadata.helpers.js.map +1 -0
- package/dist/tracing/request-id/request-id-gen.decorator.d.ts +8 -0
- package/dist/tracing/request-id/request-id-gen.decorator.js +17 -0
- package/dist/tracing/request-id/request-id-gen.decorator.js.map +1 -0
- package/dist/tracing/request-id/types.d.ts +2 -0
- package/dist/tracing/request-id/types.js +3 -0
- package/dist/tracing/request-id/types.js.map +1 -0
- package/dist/tracing/request-id/with-prefix.fn.d.ts +30 -0
- package/dist/tracing/request-id/with-prefix.fn.js +36 -0
- package/dist/tracing/request-id/with-prefix.fn.js.map +1 -0
- package/dist/tracing/tracing.config.d.ts +5 -0
- package/dist/tracing/tracing.config.js +42 -0
- package/dist/tracing/tracing.config.js.map +1 -0
- package/dist/tracing/tracing.interceptor.d.ts +7 -9
- package/dist/tracing/tracing.interceptor.js +30 -28
- package/dist/tracing/tracing.interceptor.js.map +1 -1
- package/dist/tracing/tracing.module.d.ts +13 -2
- package/dist/tracing/tracing.module.js +60 -17
- package/dist/tracing/tracing.module.js.map +1 -1
- package/dist/transport/protocol.detector.d.ts +1 -1
- package/dist/transport/protocol.detector.js +17 -2
- package/dist/transport/protocol.detector.js.map +1 -1
- package/dist/transport/transport.module.d.ts +0 -1
- package/dist/transport/transport.module.js +0 -20
- package/dist/transport/transport.module.js.map +1 -1
- package/dist/types/plugins.d.ts +2 -15
- package/dist/types/plugins.js.map +1 -1
- package/dist/types/transports.d.ts +23 -13
- package/dist/types/transports.js.map +1 -1
- package/dist/unhandled-rejection.handler.js +8 -13
- package/dist/unhandled-rejection.handler.js.map +1 -1
- package/package.json +3 -2
- package/src/config/index.ts +0 -1
- package/src/config/metadata/decorators/declare-property.decorator.ts +3 -1
- package/src/config/metadata/decorators/property.decorator.ts +3 -5
- package/src/config/sources/implementations/json-file.source.ts +1 -2
- package/src/config/sources/implementations/relodable-json-file.source.ts +1 -2
- package/src/config/types.ts +2 -23
- package/src/exceptions.handling/default.formatter.ts +11 -0
- package/src/exceptions.handling/default.sender.ts +15 -0
- package/src/exceptions.handling/global-exceptions.config.ts +2 -2
- package/src/exceptions.handling/global-exceptions.filter.ts +45 -77
- package/src/exceptions.handling/global-exceptions.interceptor.ts +57 -0
- package/src/exceptions.handling/global-exceptions.module.ts +46 -33
- package/src/exceptions.handling/types.ts +2 -2
- package/src/index.ts +53 -2
- package/src/logging/constants.ts +1 -0
- package/src/logging/decorators/inject-logger.decorator.ts +2 -2
- package/src/logging/formatters/default.formatter.ts +17 -0
- package/src/logging/formatters/index.ts +2 -0
- package/src/logging/formatters/interfaces.ts +34 -0
- package/src/logging/index.ts +3 -2
- package/src/logging/logging-core.module.ts +102 -0
- package/src/logging/{logging.module.ts → logging-instances.module.ts} +2 -4
- package/src/logging/logging.config.ts +22 -6
- package/src/logging/logging.interceptor.ts +138 -0
- package/src/metrics/metrics.config.ts +3 -1
- package/src/platform.context.ts +5 -2
- package/src/platform.module.ts +28 -7
- package/src/tracing/constants.ts +8 -7
- package/src/tracing/index.ts +1 -0
- package/src/tracing/request-id/index.ts +4 -0
- package/src/tracing/request-id/metadata.helpers.ts +24 -0
- package/src/tracing/request-id/request-id-gen.decorator.ts +16 -0
- package/src/tracing/request-id/types.ts +6 -0
- package/src/tracing/request-id/with-prefix.fn.ts +44 -0
- package/src/tracing/tracing.config.ts +23 -0
- package/src/tracing/tracing.interceptor.ts +36 -31
- package/src/tracing/tracing.module.ts +68 -19
- package/src/transport/protocol.detector.ts +24 -4
- package/src/transport/transport.module.ts +0 -25
- package/src/types/plugins.ts +11 -22
- package/src/types/transports.ts +32 -16
- package/src/unhandled-rejection.handler.ts +10 -18
- package/test/logging.interceptor.spec.ts +292 -0
- package/dist/config/parsers/array/array.parser.d.ts +0 -11
- package/dist/config/parsers/array/array.parser.js +0 -33
- package/dist/config/parsers/array/array.parser.js.map +0 -1
- package/dist/config/parsers/array/index.d.ts +0 -1
- package/dist/config/parsers/array/index.js.map +0 -1
- package/dist/config/parsers/boolean/bool.parser.d.ts +0 -6
- package/dist/config/parsers/boolean/bool.parser.js +0 -20
- package/dist/config/parsers/boolean/bool.parser.js.map +0 -1
- package/dist/config/parsers/boolean/index.d.ts +0 -1
- package/dist/config/parsers/boolean/index.js +0 -18
- package/dist/config/parsers/boolean/index.js.map +0 -1
- package/dist/config/parsers/enum/enum.parser.d.ts +0 -9
- package/dist/config/parsers/enum/enum.parser.js +0 -24
- package/dist/config/parsers/enum/enum.parser.js.map +0 -1
- package/dist/config/parsers/enum/index.d.ts +0 -1
- package/dist/config/parsers/enum/index.js.map +0 -1
- package/dist/config/parsers/index.d.ts +0 -11
- package/dist/config/parsers/index.js +0 -28
- package/dist/config/parsers/index.js.map +0 -1
- package/dist/config/parsers/int/index.d.ts +0 -1
- package/dist/config/parsers/int/index.js +0 -18
- package/dist/config/parsers/int/index.js.map +0 -1
- package/dist/config/parsers/int/int.parser.d.ts +0 -6
- package/dist/config/parsers/int/int.parser.js +0 -20
- package/dist/config/parsers/int/int.parser.js.map +0 -1
- package/dist/config/parsers/json/index.d.ts +0 -1
- package/dist/config/parsers/json/index.js +0 -18
- package/dist/config/parsers/json/index.js.map +0 -1
- package/dist/config/parsers/json/json.parser.d.ts +0 -6
- package/dist/config/parsers/json/json.parser.js +0 -16
- package/dist/config/parsers/json/json.parser.js.map +0 -1
- package/dist/config/parsers/number/index.d.ts +0 -1
- package/dist/config/parsers/number/index.js +0 -18
- package/dist/config/parsers/number/index.js.map +0 -1
- package/dist/config/parsers/number/number.parser.d.ts +0 -6
- package/dist/config/parsers/number/number.parser.js +0 -23
- package/dist/config/parsers/number/number.parser.js.map +0 -1
- package/dist/config/parsers/path/fspath.parser.d.ts +0 -8
- package/dist/config/parsers/path/fspath.parser.js +0 -59
- package/dist/config/parsers/path/fspath.parser.js.map +0 -1
- package/dist/config/parsers/path/index.d.ts +0 -1
- package/dist/config/parsers/path/index.js +0 -18
- package/dist/config/parsers/path/index.js.map +0 -1
- package/dist/config/parsers/size/index.d.ts +0 -1
- package/dist/config/parsers/size/index.js +0 -18
- package/dist/config/parsers/size/index.js.map +0 -1
- package/dist/config/parsers/size/size.parser.d.ts +0 -7
- package/dist/config/parsers/size/size.parser.js +0 -21
- package/dist/config/parsers/size/size.parser.js.map +0 -1
- package/dist/config/parsers/string/index.d.ts +0 -1
- package/dist/config/parsers/string/index.js +0 -18
- package/dist/config/parsers/string/index.js.map +0 -1
- package/dist/config/parsers/string/string.parser.d.ts +0 -8
- package/dist/config/parsers/string/string.parser.js +0 -29
- package/dist/config/parsers/string/string.parser.js.map +0 -1
- package/dist/config/parsers/timespan/index.d.ts +0 -1
- package/dist/config/parsers/timespan/index.js +0 -18
- package/dist/config/parsers/timespan/index.js.map +0 -1
- package/dist/config/parsers/timespan/timespan.parser.d.ts +0 -7
- package/dist/config/parsers/timespan/timespan.parser.js +0 -21
- package/dist/config/parsers/timespan/timespan.parser.js.map +0 -1
- package/dist/config/parsers/url/exception.d.ts +0 -7
- package/dist/config/parsers/url/exception.js +0 -25
- package/dist/config/parsers/url/exception.js.map +0 -1
- package/dist/config/parsers/url/index.d.ts +0 -2
- package/dist/config/parsers/url/index.js +0 -21
- package/dist/config/parsers/url/index.js.map +0 -1
- package/dist/config/parsers/url/url.parser.d.ts +0 -9
- package/dist/config/parsers/url/url.parser.js +0 -38
- package/dist/config/parsers/url/url.parser.js.map +0 -1
- package/dist/logging/logger-initializing.module.d.ts +0 -6
- package/dist/logging/logger-initializing.module.js.map +0 -1
- package/dist/logging/logging.module.js.map +0 -1
- package/src/config/parsers/array/array.parser.ts +0 -34
- package/src/config/parsers/array/index.ts +0 -1
- package/src/config/parsers/boolean/bool.parser.ts +0 -20
- package/src/config/parsers/boolean/bool.spec.ts +0 -4
- package/src/config/parsers/boolean/index.ts +0 -1
- package/src/config/parsers/enum/enum.parser.ts +0 -23
- package/src/config/parsers/enum/enum.spec.ts +0 -5
- package/src/config/parsers/enum/index.ts +0 -1
- package/src/config/parsers/index.ts +0 -11
- package/src/config/parsers/int/index.ts +0 -1
- package/src/config/parsers/int/int.parser.ts +0 -20
- package/src/config/parsers/int/int.spec.ts +0 -5
- package/src/config/parsers/json/index.ts +0 -1
- package/src/config/parsers/json/json.parser.ts +0 -15
- package/src/config/parsers/number/index.ts +0 -1
- package/src/config/parsers/number/number.parser.ts +0 -23
- package/src/config/parsers/number/number.spec.ts +0 -5
- package/src/config/parsers/path/fspath.parser.ts +0 -64
- package/src/config/parsers/path/index.ts +0 -1
- package/src/config/parsers/size/index.ts +0 -1
- package/src/config/parsers/size/size.parser.ts +0 -22
- package/src/config/parsers/size/size.spec.ts +0 -4
- package/src/config/parsers/string/index.ts +0 -1
- package/src/config/parsers/string/string.parser.ts +0 -26
- package/src/config/parsers/string/string.spec.ts +0 -10
- package/src/config/parsers/timespan/index.ts +0 -1
- package/src/config/parsers/timespan/timespan.parser.ts +0 -22
- package/src/config/parsers/timespan/timespan.spec.ts +0 -5
- package/src/config/parsers/url/exception.ts +0 -21
- package/src/config/parsers/url/index.ts +0 -2
- package/src/config/parsers/url/url.parser.ts +0 -44
- package/src/logging/logger-initializing.module.ts +0 -55
|
@@ -17,38 +17,26 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const exceptions_1 = require("../exceptions");
|
|
18
18
|
const logging_1 = require("../logging");
|
|
19
19
|
const protocol_detector_1 = require("../transport/protocol.detector");
|
|
20
|
-
const types_1 = require("../types");
|
|
21
20
|
const constants_1 = require("./constants");
|
|
21
|
+
const request_id_1 = require("./request-id");
|
|
22
22
|
const tracing_actx_1 = require("./tracing.actx");
|
|
23
|
+
const tracing_config_1 = require("./tracing.config");
|
|
23
24
|
/**
|
|
24
25
|
* Extracts headers that should be passed to all logging messages
|
|
25
26
|
* and external calls
|
|
26
27
|
*/
|
|
27
28
|
let TracingInterceptor = class TracingInterceptor {
|
|
28
29
|
logger;
|
|
29
|
-
transports;
|
|
30
|
-
plugins;
|
|
31
30
|
mappings;
|
|
31
|
+
extractors;
|
|
32
32
|
detector;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
* supplied by plugins
|
|
36
|
-
*/
|
|
37
|
-
extractors = new Map();
|
|
38
|
-
constructor(logger, transports, plugins, mappings, detector) {
|
|
33
|
+
config;
|
|
34
|
+
constructor(logger, mappings, extractors, detector, config) {
|
|
39
35
|
this.logger = logger;
|
|
40
|
-
this.transports = transports;
|
|
41
|
-
this.plugins = plugins;
|
|
42
36
|
this.mappings = mappings;
|
|
37
|
+
this.extractors = extractors;
|
|
43
38
|
this.detector = detector;
|
|
44
|
-
|
|
45
|
-
this.extractors.set(transport.getProtocol(), transport);
|
|
46
|
-
}
|
|
47
|
-
for (const plugin of this.plugins) {
|
|
48
|
-
for (const x of plugin.tracingHeadersExtractors?.() ?? []) {
|
|
49
|
-
this.extractors.set(x.protocol, x.extractor);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
39
|
+
this.config = config;
|
|
52
40
|
}
|
|
53
41
|
intercept(ctx, next) {
|
|
54
42
|
const protocol = this.detector.getProtocol(ctx) ?? ctx.getType();
|
|
@@ -56,27 +44,41 @@ let TracingInterceptor = class TracingInterceptor {
|
|
|
56
44
|
if (!extractor) {
|
|
57
45
|
throw new exceptions_1.InternalException(`No headers extractor for protocol: ${protocol}`);
|
|
58
46
|
}
|
|
47
|
+
const headers = this.extractHeaders(ctx, extractor);
|
|
48
|
+
const { traceRequestId, autogenerate } = this.config;
|
|
49
|
+
if (!headers.requestId && traceRequestId && autogenerate) {
|
|
50
|
+
headers.requestId = this.generateRequestId(ctx, protocol);
|
|
51
|
+
}
|
|
52
|
+
this.logger.trace('Extracted traceable headers', { headers });
|
|
53
|
+
tracing_actx_1.TracingHeaders.set(headers);
|
|
54
|
+
return next.handle();
|
|
55
|
+
}
|
|
56
|
+
extractHeaders(ctx, extractor) {
|
|
59
57
|
const headers = {};
|
|
60
58
|
for (const aliases of this.mappings) {
|
|
61
59
|
const key = aliases[0];
|
|
62
60
|
const value = aliases
|
|
63
61
|
.map((x) => extractor.extractHeaders(ctx).get(x))
|
|
64
62
|
.find((x) => x);
|
|
65
|
-
|
|
63
|
+
if (value) {
|
|
64
|
+
headers[key] = value;
|
|
65
|
+
}
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
return headers;
|
|
68
|
+
}
|
|
69
|
+
generateRequestId(ctx, protocol) {
|
|
70
|
+
const generate = (0, request_id_1.getStrategy)(ctx.getClass()) ?? request_id_1.generateDefault;
|
|
71
|
+
return generate(ctx, protocol);
|
|
70
72
|
}
|
|
71
73
|
};
|
|
72
74
|
exports.TracingInterceptor = TracingInterceptor;
|
|
73
75
|
exports.TracingInterceptor = TracingInterceptor = __decorate([
|
|
74
76
|
(0, common_1.Injectable)(),
|
|
75
77
|
__param(0, (0, logging_1.InjectLogger)(TracingInterceptor)),
|
|
76
|
-
__param(1, (0, common_1.Inject)(
|
|
77
|
-
__param(2, (0, common_1.Inject)(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
__param(1, (0, common_1.Inject)(constants_1.HEADER_MAPPINGS)),
|
|
79
|
+
__param(2, (0, common_1.Inject)(constants_1.HEADER_EXTRACTORS)),
|
|
80
|
+
__metadata("design:paramtypes", [Object, Array, Map,
|
|
81
|
+
protocol_detector_1.ProtocolDetector,
|
|
82
|
+
tracing_config_1.TracingConfig])
|
|
81
83
|
], TracingInterceptor);
|
|
82
84
|
//# sourceMappingURL=tracing.interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.interceptor.js","sourceRoot":"","sources":["../../src/tracing/tracing.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,2CAAoD;AAGpD,8CAAkD;AAClD,wCAAmD;AACnD,sEAAkE;
|
|
1
|
+
{"version":3,"file":"tracing.interceptor.js","sourceRoot":"","sources":["../../src/tracing/tracing.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,2CAAoD;AAGpD,8CAAkD;AAClD,wCAAmD;AACnD,sEAAkE;AAGlE,2CAAiE;AACjE,6CAA4D;AAC5D,iDAAgD;AAChD,qDAAiD;AAGjD;;;GAGG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAGe;IACT;IACW;IAC3B;IACA;IANnB,YAE4C,MAAe,EACxB,QAAiC,EACtB,UAA2C,EACtE,QAA0B,EAC1B,MAAqB;QAJI,WAAM,GAAN,MAAM,CAAS;QACxB,aAAQ,GAAR,QAAQ,CAAyB;QACtB,eAAU,GAAV,UAAU,CAAiC;QACtE,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,WAAM,GAAN,MAAM,CAAe;IAErC,CAAC;IAEJ,SAAS,CAAC,GAAqB,EAAE,IAAiB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAEjE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,8BAAiB,CACzB,sCAAsC,QAAQ,EAAE,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAEpD,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC;YACzD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAE9D,6BAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAEO,cAAc,CACpB,GAAqB,EACrB,SAA6B;QAE7B,MAAM,OAAO,GAA2B,EAAE,CAAC;QAE3C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,OAAO;iBAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAChD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAElB,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,iBAAiB,CAAC,GAAqB,EAAE,QAAgB;QAC/D,MAAM,QAAQ,GAAG,IAAA,wBAAW,EAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,4BAAe,CAAC;QAEhE,OAAO,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AA5DY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,sBAAY,EAAC,kBAAkB,CAAC,CAAA;IAChC,WAAA,IAAA,eAAM,EAAC,2BAAe,CAAC,CAAA;IACvB,WAAA,IAAA,eAAM,EAAC,6BAAiB,CAAC,CAAA;oDAA8B,GAAG;QAChC,oCAAgB;QAClB,8BAAa;GAP7B,kBAAkB,CA4D9B"}
|
|
@@ -3,7 +3,6 @@ import { ILogger } from '@rsdk/logging';
|
|
|
3
3
|
import type { PlatformOptions } from '../types';
|
|
4
4
|
import type { TracingHeaderMappings } from './types';
|
|
5
5
|
export interface TracingOptions {
|
|
6
|
-
includeDefault: boolean;
|
|
7
6
|
additionalMappings?: TracingHeaderMappings[];
|
|
8
7
|
}
|
|
9
8
|
export declare class TracingModule implements OnModuleInit {
|
|
@@ -11,6 +10,18 @@ export declare class TracingModule implements OnModuleInit {
|
|
|
11
10
|
private trace;
|
|
12
11
|
private context;
|
|
13
12
|
constructor(logger: ILogger);
|
|
14
|
-
static forRoot({ tracing, plugins, }: PlatformOptions): DynamicModule;
|
|
13
|
+
static forRoot({ tracing, plugins, transports, }: PlatformOptions): DynamicModule;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a provider for header mappings configuration.
|
|
16
|
+
* Combines default headers, plugin-provided headers and additional custom mappings
|
|
17
|
+
* into a single collection.
|
|
18
|
+
*/
|
|
19
|
+
private static createHeaderMappingsProvider;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a provider for header extractors from different transport protocols.
|
|
22
|
+
* Collects extractors from both transport implementations and plugins to handle
|
|
23
|
+
* protocol-specific header extraction.
|
|
24
|
+
*/
|
|
25
|
+
private static createHeaderExtractorsProvider;
|
|
15
26
|
onModuleInit(): Promise<void>;
|
|
16
27
|
}
|
|
@@ -21,13 +21,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
21
21
|
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;
|
|
22
22
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
23
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
31
41
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
42
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
43
|
};
|
|
@@ -44,6 +54,7 @@ const logging_1 = require("@rsdk/logging");
|
|
|
44
54
|
const logging_2 = require("../logging");
|
|
45
55
|
const constants_1 = require("./constants");
|
|
46
56
|
const tracing_actx_1 = require("./tracing.actx");
|
|
57
|
+
const tracing_config_1 = require("./tracing.config");
|
|
47
58
|
const tracing_interceptor_1 = require("./tracing.interceptor");
|
|
48
59
|
let TracingModule = TracingModule_1 = class TracingModule {
|
|
49
60
|
logger;
|
|
@@ -52,24 +63,56 @@ let TracingModule = TracingModule_1 = class TracingModule {
|
|
|
52
63
|
constructor(logger) {
|
|
53
64
|
this.logger = logger;
|
|
54
65
|
}
|
|
55
|
-
static forRoot({ tracing
|
|
56
|
-
const mappings = [];
|
|
57
|
-
if (tracing?.includeDefault) {
|
|
58
|
-
mappings.push(...constants_1.DEFAULT_TRACING_HEADERS);
|
|
59
|
-
}
|
|
60
|
-
for (const plugin of plugins) {
|
|
61
|
-
mappings.push(...(plugin.additionalTracingHeaders?.() ?? []));
|
|
62
|
-
}
|
|
63
|
-
mappings.push(...(tracing.additionalMappings ?? []));
|
|
66
|
+
static forRoot({ tracing, plugins, transports, }) {
|
|
64
67
|
return {
|
|
65
68
|
global: true,
|
|
66
69
|
module: TracingModule_1,
|
|
67
70
|
providers: [
|
|
68
71
|
{ provide: core_1.APP_INTERCEPTOR, useClass: tracing_interceptor_1.TracingInterceptor },
|
|
69
|
-
|
|
72
|
+
this.createHeaderExtractorsProvider(transports, plugins),
|
|
73
|
+
this.createHeaderMappingsProvider(tracing, plugins),
|
|
70
74
|
],
|
|
71
75
|
};
|
|
72
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Creates a provider for header mappings configuration.
|
|
79
|
+
* Combines default headers, plugin-provided headers and additional custom mappings
|
|
80
|
+
* into a single collection.
|
|
81
|
+
*/
|
|
82
|
+
static createHeaderMappingsProvider(options = {}, plugins) {
|
|
83
|
+
const mappings = [];
|
|
84
|
+
for (const plugin of plugins ?? []) {
|
|
85
|
+
mappings.push(...(plugin.additionalTracingHeaders?.() ?? []));
|
|
86
|
+
}
|
|
87
|
+
mappings.push(...(options.additionalMappings ?? []));
|
|
88
|
+
return {
|
|
89
|
+
provide: constants_1.HEADER_MAPPINGS,
|
|
90
|
+
inject: [tracing_config_1.TracingConfig],
|
|
91
|
+
useFactory: (config) => {
|
|
92
|
+
if (config.traceRequestId) {
|
|
93
|
+
mappings.push(constants_1.REQUEST_ID_HEADERS);
|
|
94
|
+
}
|
|
95
|
+
return mappings;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Creates a provider for header extractors from different transport protocols.
|
|
101
|
+
* Collects extractors from both transport implementations and plugins to handle
|
|
102
|
+
* protocol-specific header extraction.
|
|
103
|
+
*/
|
|
104
|
+
static createHeaderExtractorsProvider(transports, plugins) {
|
|
105
|
+
const extractors = new Map();
|
|
106
|
+
for (const transport of transports ?? []) {
|
|
107
|
+
extractors.set(transport.getProtocol(), transport);
|
|
108
|
+
}
|
|
109
|
+
for (const plugin of plugins ?? []) {
|
|
110
|
+
for (const x of plugin.tracingHeadersExtractors?.() ?? []) {
|
|
111
|
+
extractors.set(x.protocol, x.extractor);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return { provide: constants_1.HEADER_EXTRACTORS, useValue: extractors };
|
|
115
|
+
}
|
|
73
116
|
// Можно добавить включение и выключение при изменении конфига.
|
|
74
117
|
async onModuleInit() {
|
|
75
118
|
if (!this.context || !this.trace) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.module.js","sourceRoot":"","sources":["../../src/tracing/tracing.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracing.module.js","sourceRoot":"","sources":["../../src/tracing/tracing.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export declare class ProtocolDetector {
|
|
|
10
10
|
/**
|
|
11
11
|
* Detects transport's protocol by ArgumentHost (context)
|
|
12
12
|
*/
|
|
13
|
-
getProtocol(context: ArgumentsHost): string
|
|
13
|
+
getProtocol(context: ArgumentsHost): string;
|
|
14
14
|
/**
|
|
15
15
|
* Checks that transport's protocol matches the provided one.
|
|
16
16
|
* (just convenience method)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProtocolDetector = void 0;
|
|
4
|
+
const exceptions_1 = require("../exceptions");
|
|
4
5
|
/**
|
|
5
6
|
* This class is used to detect current protocol (transport type).
|
|
6
7
|
* Mostly used in global enhancers to decide: "to work of not to work"
|
|
@@ -14,7 +15,15 @@ class ProtocolDetector {
|
|
|
14
15
|
* Detects transport's protocol by ArgumentHost (context)
|
|
15
16
|
*/
|
|
16
17
|
getProtocol(context) {
|
|
17
|
-
|
|
18
|
+
/**
|
|
19
|
+
* FIXME: Грязный хак, который можно исправить только
|
|
20
|
+
* "прицепив" к транспорту. А ещё учесть, что на http-транспорте
|
|
21
|
+
* может быть и обычный http!
|
|
22
|
+
*/
|
|
23
|
+
if (context.getType() === 'graphql') {
|
|
24
|
+
return 'graphql';
|
|
25
|
+
}
|
|
26
|
+
return this.getTransport(context).getProtocol();
|
|
18
27
|
}
|
|
19
28
|
/**
|
|
20
29
|
* Checks that transport's protocol matches the provided one.
|
|
@@ -24,7 +33,13 @@ class ProtocolDetector {
|
|
|
24
33
|
return this.getProtocol(context) === protocol;
|
|
25
34
|
}
|
|
26
35
|
getTransport(context) {
|
|
27
|
-
|
|
36
|
+
const transport = this.transports.findLast((x) => x.matchByContext(context));
|
|
37
|
+
if (!transport) {
|
|
38
|
+
throw new exceptions_1.InternalException('Cant detect transport protocol', {
|
|
39
|
+
details: { context },
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return transport;
|
|
28
43
|
}
|
|
29
44
|
}
|
|
30
45
|
exports.ProtocolDetector = ProtocolDetector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.detector.js","sourceRoot":"","sources":["../../src/transport/protocol.detector.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"protocol.detector.js","sourceRoot":"","sources":["../../src/transport/protocol.detector.ts"],"names":[],"mappings":";;;AAEA,8CAAkD;AAGlD;;;GAGG;AACH,MAAa,gBAAgB;IACP;IAApB,YAAoB,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;IAAG,CAAC;IAEhD;;OAEG;IACH,WAAW,CAAC,OAAsB;QAChC;;;;WAIG;QACH,IAAK,OAAO,CAAC,OAAO,EAAU,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAsB,EAAE,QAAgB;QACpD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;IAChD,CAAC;IAEO,YAAY,CAAC,OAAsB;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/C,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAC1B,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,8BAAiB,CAAC,gCAAgC,EAAE;gBAC5D,OAAO,EAAE,EAAE,OAAO,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAxCD,4CAwCC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PlatformTransportModule = void 0;
|
|
4
|
-
const lodash_1 = require("lodash");
|
|
5
|
-
const exceptions_handling_1 = require("../exceptions.handling");
|
|
6
4
|
const health_module_1 = require("../health/health.module");
|
|
7
5
|
const metrics_1 = require("../metrics");
|
|
8
6
|
const types_1 = require("../types");
|
|
@@ -14,7 +12,6 @@ class PlatformTransportModule {
|
|
|
14
12
|
PlatformTransportModule.initProtocolDetector(options),
|
|
15
13
|
PlatformTransportModule.initHealthchecks(options),
|
|
16
14
|
PlatformTransportModule.initMetrics(options),
|
|
17
|
-
PlatformTransportModule.initExceptionsHandling(options),
|
|
18
15
|
...PlatformTransportModule.getTransportModules(options),
|
|
19
16
|
],
|
|
20
17
|
module: PlatformTransportModule,
|
|
@@ -54,23 +51,6 @@ class PlatformTransportModule {
|
|
|
54
51
|
.map((x) => x.getHealthController()),
|
|
55
52
|
});
|
|
56
53
|
}
|
|
57
|
-
static initExceptionsHandling(options) {
|
|
58
|
-
const transports = options.transports ?? [];
|
|
59
|
-
return exceptions_handling_1.GlobalExceptionsModule.forRoot({
|
|
60
|
-
formatters: [
|
|
61
|
-
...transports.map((x) => x.getErrorsFormatter()),
|
|
62
|
-
...(options.plugins?.map((x) => x.errorFormatter?.()) || []),
|
|
63
|
-
].filter((x) => Boolean(x)),
|
|
64
|
-
senders: [
|
|
65
|
-
...transports.map((x) => x.getErrorsSender?.()),
|
|
66
|
-
...(options.plugins?.map((x) => x.errorSender?.()) || []),
|
|
67
|
-
].filter((x) => Boolean(x)),
|
|
68
|
-
transformers: [
|
|
69
|
-
...(0, lodash_1.flatten)(transports.map((x) => x.getErrorTransformers())),
|
|
70
|
-
...(0, lodash_1.flatten)(options.plugins?.map((x) => x.errorTransformers?.() || [])),
|
|
71
|
-
],
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
54
|
}
|
|
75
55
|
exports.PlatformTransportModule = PlatformTransportModule;
|
|
76
56
|
//# sourceMappingURL=transport.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.module.js","sourceRoot":"","sources":["../../src/transport/transport.module.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"transport.module.js","sourceRoot":"","sources":["../../src/transport/transport.module.ts"],"names":[],"mappings":";;;AAGA,2DAAuD;AACvD,wCAA2C;AAE3C,oCAA8C;AAE9C,2DAAuD;AAEvD,MAAa,uBAAuB;IAClC,MAAM,CAAC,UAAU,CAAC,OAAgC;QAChD,OAAO;YACL,OAAO,EAAE;gBACP,uBAAuB,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBACrD,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACjD,uBAAuB,CAAC,WAAW,CAAC,OAAO,CAAC;gBAC5C,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,OAAO,CAAC;aACxD;YACD,MAAM,EAAE,uBAAuB;SAChC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAChC,OAAgC;QAEhC,OAAO,CACL,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE;YAC3C,OAAO,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC,CAAC,IAAI,EAAE,CACT,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,OAAgC;QAEhC,OAAO;YACL,MAAM,EAAE,uBAAuB;YAC/B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,oCAAgB;oBACzB,QAAQ,EAAE,IAAI,oCAAgB,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;iBACzD;aACF;YACD,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,CAAC,oCAAgB,CAAC;SAC5B,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,4BAAY,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;CACF;AA5DD,0DA4DC"}
|
package/dist/types/plugins.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { DynamicModule, MiddlewareConsumer } from '@nestjs/common';
|
|
2
2
|
import type { Constructor } from '@rsdk/common';
|
|
3
3
|
import type { ResourceExtractor } from '@rsdk/metadata';
|
|
4
|
-
import type { IErrorsFormatter, IErrorsSender, IErrorsTransformer } from '../exceptions.handling';
|
|
5
4
|
import type { TracingHeaderMappings } from '../tracing';
|
|
6
|
-
import type { WithGenericHeaders } from './transports';
|
|
5
|
+
import type { WithErrorFormatting, WithErrorSending, WithErrorTransforming, WithGenericHeaders, WithLogFormatting } from './transports';
|
|
7
6
|
export type SpecifiedTransports = Readonly<string[]>;
|
|
8
7
|
export type AppropriateTransports = SpecifiedTransports | 'any';
|
|
9
8
|
export declare const hasSpecifiedTransports: (x: PlatformAppPlugin) => x is PlatformAppPlugin<SpecifiedTransports>;
|
|
@@ -13,7 +12,7 @@ export declare const hasSpecifiedTransports: (x: PlatformAppPlugin) => x is Plat
|
|
|
13
12
|
* are cases when initialization should be extended from
|
|
14
13
|
* outside. This is where plugins come in.
|
|
15
14
|
*/
|
|
16
|
-
export interface PlatformAppPlugin<T extends AppropriateTransports = AppropriateTransports> {
|
|
15
|
+
export interface PlatformAppPlugin<T extends AppropriateTransports = AppropriateTransports> extends Partial<WithErrorFormatting>, Partial<WithErrorSending>, Partial<WithErrorTransforming>, Partial<WithLogFormatting> {
|
|
17
16
|
/**
|
|
18
17
|
* Additional resource extractors
|
|
19
18
|
* Maybe used with custom plugin entity
|
|
@@ -41,18 +40,6 @@ export interface PlatformAppPlugin<T extends AppropriateTransports = Appropriate
|
|
|
41
40
|
* level modules.
|
|
42
41
|
*/
|
|
43
42
|
modules?(): (Constructor | DynamicModule)[];
|
|
44
|
-
/**
|
|
45
|
-
* Additional error transformers
|
|
46
|
-
*/
|
|
47
|
-
errorTransformers?(): IErrorsTransformer[];
|
|
48
|
-
/**
|
|
49
|
-
* Additional error formatter
|
|
50
|
-
*/
|
|
51
|
-
errorFormatter?(): IErrorsFormatter;
|
|
52
|
-
/**
|
|
53
|
-
* Additional errors sender
|
|
54
|
-
*/
|
|
55
|
-
errorSender?(): IErrorsSender;
|
|
56
43
|
/**
|
|
57
44
|
* Apply additional middleware (using MiddlewareConsumer).
|
|
58
45
|
* Will work only if application has HttpAdapter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/types/plugins.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/types/plugins.ts"],"names":[],"mappings":";;;AAiBO,MAAM,sBAAsB,GAAG,CACpC,CAAoB,EACyB,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,KAAK,CAAC;AAFjE,QAAA,sBAAsB,0BAE2C"}
|
|
@@ -5,6 +5,7 @@ import type { MicroserviceOptions } from '@nestjs/microservices';
|
|
|
5
5
|
import type { Constructor } from '@rsdk/common';
|
|
6
6
|
import type { ConfigContext } from '../config';
|
|
7
7
|
import type { IErrorsFormatter, IErrorsSender, IErrorsTransformer } from '../exceptions.handling';
|
|
8
|
+
import type { LogFormatter } from '../logging';
|
|
8
9
|
import type { NestModuleDefinitions } from './options';
|
|
9
10
|
export interface GenericHeaders {
|
|
10
11
|
get(key: string): string | undefined;
|
|
@@ -21,10 +22,31 @@ export interface WithGenericHeaders {
|
|
|
21
22
|
extractHeaders(context: ExecutionContext): GenericHeaders;
|
|
22
23
|
}
|
|
23
24
|
export declare const hasGenericHeaders: (x: unknown) => x is WithGenericHeaders;
|
|
25
|
+
export interface WithErrorFormatting {
|
|
26
|
+
errorFormatter(): IErrorsFormatter;
|
|
27
|
+
}
|
|
28
|
+
export interface WithErrorSending {
|
|
29
|
+
/**
|
|
30
|
+
* @returns sending error algorithm
|
|
31
|
+
*/
|
|
32
|
+
errorSender(): IErrorsSender;
|
|
33
|
+
}
|
|
34
|
+
export interface WithErrorTransforming {
|
|
35
|
+
/**
|
|
36
|
+
* @returns error transformers or empty array
|
|
37
|
+
*/
|
|
38
|
+
errorTransformers(): IErrorsTransformer[];
|
|
39
|
+
}
|
|
40
|
+
export interface WithLogFormatting {
|
|
41
|
+
/**
|
|
42
|
+
* @returns logging formatter
|
|
43
|
+
*/
|
|
44
|
+
logFormatter(): LogFormatter;
|
|
45
|
+
}
|
|
24
46
|
/**
|
|
25
47
|
* Base functionality of HTTP or microservice transport
|
|
26
48
|
*/
|
|
27
|
-
export interface ITransport extends WithGenericHeaders {
|
|
49
|
+
export interface ITransport extends WithGenericHeaders, WithErrorFormatting, WithErrorTransforming, WithLogFormatting, Partial<WithErrorSending> {
|
|
28
50
|
/**
|
|
29
51
|
* @returns protocol in text format
|
|
30
52
|
*/
|
|
@@ -40,18 +62,6 @@ export interface ITransport extends WithGenericHeaders {
|
|
|
40
62
|
* return ctx.getArgByIndex(1) instanceof MyTransportContext
|
|
41
63
|
*/
|
|
42
64
|
matchByContext(ctx: ArgumentsHost): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* @returns error formatting algorithm
|
|
45
|
-
*/
|
|
46
|
-
getErrorsFormatter(): IErrorsFormatter;
|
|
47
|
-
/**
|
|
48
|
-
* @returns error transformers or empty array
|
|
49
|
-
*/
|
|
50
|
-
getErrorTransformers(): IErrorsTransformer[];
|
|
51
|
-
/**
|
|
52
|
-
* @returns sending error algorithm
|
|
53
|
-
*/
|
|
54
|
-
getErrorsSender?(): IErrorsSender;
|
|
55
65
|
/**
|
|
56
66
|
* Modules for register metrics, healthchecks, configs and supporting tools, such as clients
|
|
57
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/types/transports.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/types/transports.ts"],"names":[],"mappings":";;;AAoCO,MAAM,iBAAiB,GAAG,CAAC,CAAU,EAA2B,EAAE,CACvE,OAAQ,CAAS,EAAE,UAAU,KAAK,UAAU,CAAC;AADlC,QAAA,iBAAiB,qBACiB;AA+HxC,MAAM,kBAAkB,GAAG,CAAC,CAAa,EAA0B,EAAE,CAC1E,OAAQ,CAAuB,CAAC,mBAAmB,KAAK,UAAU;IAClE,OAAQ,CAAuB,CAAC,oBAAoB,KAAK,UAAU,CAAC;AAFzD,QAAA,kBAAkB,sBAEuC;AAE/D,MAAM,eAAe,GAAG,CAAC,CAAa,EAAuB,EAAE,CACpE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AADhB,QAAA,eAAe,mBACC;AAEtB,MAAM,uBAAuB,GAAG,CACrC,CAAa,EACgB,EAAE,CAC/B,OAAQ,CAA4B,CAAC,yBAAyB,KAAK,UAAU,CAAC;AAHnE,QAAA,uBAAuB,2BAG4C"}
|
|
@@ -2,25 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const common_1 = require("@rsdk/common");
|
|
4
4
|
const logging_1 = require("@rsdk/logging");
|
|
5
|
-
const logger = logging_1.LoggerFactory.create('
|
|
6
|
-
if (!process.env.RSDK_CLI_MODE) {
|
|
7
|
-
logger.info('Registering unhandled rejections handler...');
|
|
8
|
-
}
|
|
5
|
+
const logger = logging_1.LoggerFactory.create('UnhandledRejectionHandler');
|
|
9
6
|
// This code enriches output if unhandled exceptions happen
|
|
10
7
|
process.on('unhandledRejection', (reason, promise) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
const message = (0, common_1.text) `
|
|
9
|
+
Unhandled promise rejection happened! Process is shutting down
|
|
10
|
+
with exit code 1. See: https://github.com/nodejs/node/issues/20392
|
|
11
|
+
and https://nodejs.org/api/process.html#event-unhandledrejection
|
|
12
|
+
`;
|
|
13
|
+
logger.error(message, { promise, reason });
|
|
16
14
|
/**
|
|
17
15
|
* Additionally writes to standard console, because both <promise> and <reason>
|
|
18
16
|
* can be not serializable
|
|
19
17
|
*/
|
|
20
|
-
console.error(
|
|
21
|
-
promise,
|
|
22
|
-
reason,
|
|
23
|
-
});
|
|
18
|
+
console.error(message, { promise, reason });
|
|
24
19
|
process.exit(1);
|
|
25
20
|
});
|
|
26
21
|
//# sourceMappingURL=unhandled-rejection.handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unhandled-rejection.handler.js","sourceRoot":"","sources":["../src/unhandled-rejection.handler.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,2CAA8C;AAE9C,MAAM,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"unhandled-rejection.handler.js","sourceRoot":"","sources":["../src/unhandled-rejection.handler.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,2CAA8C;AAE9C,MAAM,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAEjE,2DAA2D;AAC3D,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAW,EAAE,OAAqB,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG,IAAA,aAAI,EAAA;;;;GAInB,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3C;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-next.0",
|
|
4
4
|
"description": "Nestjs based microservice chassis",
|
|
5
5
|
"license": "Apache License 2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"@rsdk/logging": "*",
|
|
35
35
|
"@rsdk/metadata": "*",
|
|
36
36
|
"@rsdk/nest-tools": "*",
|
|
37
|
+
"@rsdk/zones": "*",
|
|
37
38
|
"pino-opentelemetry-transport": "^1.0.1",
|
|
38
39
|
"reflect-metadata": "^0.1.12 || ^0.2.0",
|
|
39
40
|
"rxjs": "^7.8.1"
|
|
@@ -49,5 +50,5 @@
|
|
|
49
50
|
"optional": true
|
|
50
51
|
}
|
|
51
52
|
},
|
|
52
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "215cccea23d95118dd8b6af3ce11c6a35ce19c30"
|
|
53
54
|
}
|
package/src/config/index.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
SectionMetadata,
|
|
5
|
-
} from '../../types';
|
|
1
|
+
import type { PropertyParser } from '@rsdk/common';
|
|
2
|
+
|
|
3
|
+
import type { PropertyOptions, SectionMetadata } from '../../types';
|
|
6
4
|
|
|
7
5
|
export const CONFIG_METADATA_KEY = 'CONFIG_METADATA';
|
|
8
6
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { readObj } from '@rsdk/common.node';
|
|
1
|
+
import { FsPathParser, readObj } from '@rsdk/common.node';
|
|
2
2
|
|
|
3
3
|
import { DeclareProperty, InjectProperty } from '../../metadata';
|
|
4
|
-
import { FsPathParser } from '../../parsers';
|
|
5
4
|
import type { SourceType } from '../../types';
|
|
6
5
|
import { ConfigSource } from '../base';
|
|
7
6
|
import { Source } from '../config-source.decorator';
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { readObj } from '@rsdk/common.node';
|
|
1
|
+
import { FsPathParser, readObj } from '@rsdk/common.node';
|
|
2
2
|
import { LoggerFactory } from '@rsdk/logging';
|
|
3
3
|
import { watch } from 'node:fs';
|
|
4
4
|
|
|
5
5
|
import { DeclareProperty, InjectProperty } from '../../metadata';
|
|
6
|
-
import { FsPathParser } from '../../parsers';
|
|
7
6
|
import { ReloadEvents } from '../../reload';
|
|
8
7
|
import { ReloadableConfigSource } from '../base';
|
|
9
8
|
import { Source } from '../config-source.decorator';
|