@rsdk/core 1.0.12 → 2.0.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/CHANGELOG.md +50 -0
- package/dist/app/platform.app.d.ts +1 -1
- package/dist/app/platform.app.js +3 -25
- package/dist/app/platform.app.js.map +1 -1
- package/dist/app-metadata/app-metadata.module.js.map +1 -1
- package/dist/app-metadata/exceptions/app-name-validation.exception.js.map +1 -1
- package/dist/config/additional-source/additional-source.initializer.d.ts +6 -2
- package/dist/config/additional-source/additional-source.initializer.js +24 -18
- package/dist/config/additional-source/additional-source.initializer.js.map +1 -1
- package/dist/config/additional-source/additional-source.module.d.ts +1 -1
- package/dist/config/additional-source/additional-source.module.js +3 -1
- package/dist/config/additional-source/additional-source.module.js.map +1 -1
- package/dist/config/config-reload.indicator.d.ts +3 -2
- package/dist/config/config-reload.indicator.js +4 -3
- package/dist/config/config-reload.indicator.js.map +1 -1
- package/dist/config/config.abstract.d.ts +3 -2
- package/dist/config/config.abstract.js +3 -3
- package/dist/config/config.abstract.js.map +1 -1
- package/dist/config/config.module.d.ts +0 -81
- package/dist/config/config.module.js +26 -203
- package/dist/config/config.module.js.map +1 -1
- package/dist/config/context/config.context.d.ts +75 -0
- package/dist/config/context/config.context.js +159 -0
- package/dist/config/context/config.context.js.map +1 -0
- package/dist/config/context/module.d.ts +5 -0
- package/dist/config/context/module.js +26 -0
- package/dist/config/context/module.js.map +1 -0
- package/dist/config/exceptions/config-not-bootstrapped.exception.js.map +1 -1
- package/dist/config/exceptions/property.exception.d.ts +9 -2
- package/dist/config/exceptions/property.exception.js +4 -6
- package/dist/config/exceptions/property.exception.js.map +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.js +3 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/metadata/config-metadata.provider.d.ts +21 -0
- package/dist/config/metadata/config-metadata.provider.js +37 -0
- package/dist/config/metadata/config-metadata.provider.js.map +1 -0
- package/dist/config/metadata/config-metadata.registry.d.ts +1 -9
- package/dist/config/metadata/config-metadata.registry.js +9 -28
- package/dist/config/metadata/config-metadata.registry.js.map +1 -1
- package/dist/config/metadata/constants.d.ts +3 -0
- package/dist/config/metadata/constants.js +7 -0
- package/dist/config/metadata/constants.js.map +1 -0
- package/dist/config/metadata/decorators/declare-property.decorator.js +2 -2
- package/dist/config/metadata/decorators/declare-property.decorator.js.map +1 -1
- package/dist/config/metadata/decorators/inject-property.decorator.d.ts +1 -1
- package/dist/config/metadata/decorators/inject-property.decorator.js +1 -1
- package/dist/config/metadata/exceptions/duplicate-property.exception.js.map +1 -1
- package/dist/config/metadata/exceptions/duplicate-section.exception.js.map +1 -1
- package/dist/config/metadata/exceptions/duplicate-source.exception.js.map +1 -1
- package/dist/config/metadata/types.d.ts +16 -0
- package/dist/config/metadata/types.js +3 -0
- package/dist/config/metadata/types.js.map +1 -0
- package/dist/config/reload/config-reload.events.d.ts +0 -2
- package/dist/config/reload/config-reload.events.js +0 -8
- package/dist/config/reload/config-reload.events.js.map +1 -1
- package/dist/config/sources/base/reloadable-config-source.abstract.d.ts +3 -2
- package/dist/config/sources/base/reloadable-config-source.abstract.js +3 -3
- package/dist/config/sources/base/reloadable-config-source.abstract.js.map +1 -1
- package/dist/config/sources/exceptions/config-source-di.exception.js.map +1 -1
- package/dist/config/sources/implementations/json-file.source.js.map +1 -1
- package/dist/config/sources/implementations/relodable-json-file.source.d.ts +3 -1
- package/dist/config/sources/implementations/relodable-json-file.source.js +6 -3
- package/dist/config/sources/implementations/relodable-json-file.source.js.map +1 -1
- package/dist/config/vars.class.d.ts +1 -1
- package/dist/config/vars.class.js +6 -6
- package/dist/config/vars.class.js.map +1 -1
- package/dist/context.aggregator.d.ts +21 -0
- package/dist/context.aggregator.js +53 -0
- package/dist/context.aggregator.js.map +1 -0
- package/dist/exceptions/base/platform-exception.absract.d.ts +2 -2
- package/dist/exceptions/base/platform-exception.absract.js +4 -1
- package/dist/exceptions/base/platform-exception.absract.js.map +1 -1
- package/dist/exceptions/implementations/bootstrap/double-init.exception.js.map +1 -1
- package/dist/exceptions/implementations/bootstrap/duplicate-protocol.exception.js.map +1 -1
- package/dist/exceptions/implementations/bootstrap/no-http.exception.js.map +1 -1
- package/dist/exceptions/implementations/bootstrap/no-init.exception.js.map +1 -1
- package/dist/exceptions/implementations/bootstrap/no-matching-transport.exception.js.map +1 -1
- package/dist/exceptions/implementations/bootstrap/sequence.exception.js.map +1 -1
- package/dist/exceptions/implementations/bootstrap/symbol-key-decoration.exception.js.map +1 -1
- package/dist/exceptions/implementations/bootstrap/unknown-bootstrap.exception.js.map +1 -1
- package/dist/exceptions/implementations/pipeline/authentication.exception.js.map +1 -1
- package/dist/exceptions/implementations/pipeline/conflict.exception.js.map +1 -1
- package/dist/exceptions/implementations/pipeline/duplicate-entity.exception.js.map +1 -1
- package/dist/exceptions/implementations/pipeline/input.exception.js.map +1 -1
- package/dist/exceptions/implementations/pipeline/internal.exception.js.map +1 -1
- package/dist/exceptions/implementations/pipeline/not-allowed.exception.js.map +1 -1
- package/dist/exceptions/implementations/pipeline/not-found.exception.js.map +1 -1
- package/dist/exceptions/implementations/pipeline/timeout.exception.js.map +1 -1
- package/dist/exceptions.handling/global-exceptions.config.js.map +1 -1
- package/dist/exceptions.handling/global-exceptions.filter.js.map +1 -1
- package/dist/exceptions.handling/global-exceptions.module.js.map +1 -1
- package/dist/health/autodoc/heath.autodoc-resolver.d.ts +5 -15
- package/dist/health/autodoc/heath.autodoc-resolver.js +11 -13
- package/dist/health/autodoc/heath.autodoc-resolver.js.map +1 -1
- package/dist/health/exceptions/health-check.exception.js.map +1 -1
- package/dist/health/health.const.d.ts +1 -0
- package/dist/health/health.const.js +2 -1
- package/dist/health/health.const.js.map +1 -1
- package/dist/health/health.module.js.map +1 -1
- package/dist/health/health.service.d.ts +6 -2
- package/dist/health/health.service.js +19 -6
- package/dist/health/health.service.js.map +1 -1
- package/dist/health/metadata/constants.d.ts +1 -0
- package/dist/health/metadata/constants.js +5 -0
- package/dist/health/metadata/constants.js.map +1 -0
- package/dist/health/metadata/indicator.decorator.js +2 -12
- package/dist/health/metadata/indicator.decorator.js.map +1 -1
- package/dist/health/metadata/indicators.registry.d.ts +0 -7
- package/dist/health/metadata/indicators.registry.js +6 -14
- package/dist/health/metadata/indicators.registry.js.map +1 -1
- package/dist/health/metadata/types.d.ts +7 -0
- package/dist/health/metadata/types.js +3 -0
- package/dist/health/metadata/types.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.js +13 -7
- package/dist/index.js.map +1 -1
- package/dist/logging/decorators/inject-logger.decorator.js +5 -3
- package/dist/logging/decorators/inject-logger.decorator.js.map +1 -1
- package/dist/logging/global-logger-provider.generator.d.ts +7 -0
- package/dist/logging/global-logger-provider.generator.js +22 -0
- package/dist/logging/global-logger-provider.generator.js.map +1 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.js +3 -0
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/logging.config.js +1 -1
- package/dist/logging/logging.config.js.map +1 -1
- package/dist/logging/logging.module.d.ts +5 -3
- package/dist/logging/logging.module.js +25 -13
- package/dist/logging/logging.module.js.map +1 -1
- package/dist/logging/metadata/constants.d.ts +1 -0
- package/dist/logging/metadata/constants.js +5 -0
- package/dist/logging/metadata/constants.js.map +1 -0
- package/dist/logging/types.d.ts +6 -2
- package/dist/metrics/index.d.ts +1 -1
- package/dist/metrics/index.js +3 -3
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.d.ts +6 -7
- package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.js +8 -11
- package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.js.map +1 -1
- package/dist/metrics/metadata/constants.d.ts +1 -0
- package/dist/metrics/metadata/constants.js +5 -0
- package/dist/metrics/metadata/constants.js.map +1 -0
- package/dist/metrics/metadata/index.d.ts +0 -1
- package/dist/metrics/metadata/index.js +0 -3
- package/dist/metrics/metadata/index.js.map +1 -1
- package/dist/metrics/metadata/metrics.registry.d.ts +0 -3
- package/dist/metrics/metadata/metrics.registry.js +9 -16
- package/dist/metrics/metadata/metrics.registry.js.map +1 -1
- package/dist/metrics/metadata/types.d.ts +2 -4
- package/dist/metrics/metric.storage.d.ts +8 -0
- package/dist/metrics/metric.storage.js +11 -0
- package/dist/metrics/metric.storage.js.map +1 -0
- package/dist/metrics/metrics.config.js.map +1 -1
- package/dist/metrics/metrics.module.d.ts +1 -1
- package/dist/metrics/metrics.module.js +27 -21
- package/dist/metrics/metrics.module.js.map +1 -1
- package/dist/platform.context.d.ts +5 -3
- package/dist/platform.context.js +20 -19
- package/dist/platform.context.js.map +1 -1
- package/dist/platform.module.d.ts +5 -4
- package/dist/platform.module.js +24 -13
- package/dist/platform.module.js.map +1 -1
- package/dist/rsdk-metadata/constants.d.ts +3 -0
- package/dist/rsdk-metadata/constants.js +5 -0
- package/dist/rsdk-metadata/constants.js.map +1 -0
- package/dist/rsdk-metadata/rsdk-metadata.global-module.d.ts +6 -0
- package/dist/rsdk-metadata/rsdk-metadata.global-module.js +31 -0
- package/dist/rsdk-metadata/rsdk-metadata.global-module.js.map +1 -0
- package/dist/tracing/services/instrumentation.service.js.map +1 -1
- package/dist/tracing/services/metadata.scanner.js.map +1 -1
- package/dist/tracing/tracing.config.js.map +1 -1
- package/dist/tracing/tracing.module.js.map +1 -1
- package/dist/transport/transport.module.d.ts +1 -0
- package/dist/transport/transport.module.js +8 -2
- package/dist/transport/transport.module.js.map +1 -1
- package/dist/types/context-aggregated.d.ts +8 -0
- package/dist/types/context-aggregated.js +3 -0
- package/dist/types/context-aggregated.js.map +1 -0
- package/dist/types/options.d.ts +6 -6
- package/dist/types/transports.d.ts +10 -3
- package/dist/types/transports.js.map +1 -1
- package/dist/unhandled-rejection.handler.d.ts +1 -0
- package/dist/unhandled-rejection.handler.js +24 -0
- package/dist/unhandled-rejection.handler.js.map +1 -0
- package/package.json +8 -7
- package/src/app/platform.app.ts +6 -32
- package/src/config/additional-source/additional-source.initializer.ts +34 -25
- package/src/config/additional-source/additional-source.module.ts +5 -2
- package/src/config/config-reload.indicator.ts +3 -3
- package/src/config/config.abstract.ts +2 -3
- package/src/config/config.module.ts +23 -225
- package/src/config/context/config.context.ts +209 -0
- package/src/config/context/module.ts +25 -0
- package/src/config/exceptions/property.exception.ts +11 -6
- package/src/config/index.ts +1 -0
- package/src/config/metadata/config-metadata.provider.ts +79 -0
- package/src/config/metadata/config-metadata.registry.ts +36 -41
- package/src/config/metadata/constants.ts +6 -0
- package/src/config/metadata/decorators/declare-property.decorator.ts +2 -2
- package/src/config/metadata/decorators/inject-property.decorator.ts +1 -1
- package/src/config/metadata/types.ts +22 -0
- package/src/config/reload/config-reload.events.ts +1 -13
- package/src/config/sources/base/reloadable-config-source.abstract.ts +2 -3
- package/src/config/sources/implementations/relodable-json-file.source.ts +6 -2
- package/src/config/vars.class.ts +9 -7
- package/src/context.aggregator.ts +62 -0
- package/src/exceptions/base/platform-exception.absract.ts +8 -3
- package/src/health/autodoc/heath.autodoc-resolver.ts +15 -18
- package/src/health/health.const.ts +2 -0
- package/src/health/health.service.ts +23 -4
- package/src/health/metadata/constants.ts +1 -0
- package/src/health/metadata/indicator.decorator.ts +2 -18
- package/src/health/metadata/indicators.registry.ts +16 -23
- package/src/health/metadata/types.ts +9 -0
- package/src/index.ts +29 -12
- package/src/logging/decorators/inject-logger.decorator.ts +5 -4
- package/src/logging/global-logger-provider.generator.ts +28 -0
- package/src/logging/index.ts +2 -0
- package/src/logging/logging.config.ts +2 -1
- package/src/logging/logging.module.ts +42 -16
- package/src/logging/metadata/constants.ts +1 -0
- package/src/logging/types.ts +6 -2
- package/src/metrics/index.ts +1 -1
- package/src/metrics/metadata/autodoc/metrics.autodoc-resolver.ts +13 -9
- package/src/metrics/metadata/constants.ts +1 -0
- package/src/metrics/metadata/index.ts +0 -1
- package/src/metrics/metadata/metrics.registry.ts +19 -23
- package/src/metrics/metadata/types.ts +2 -5
- package/src/metrics/metric.storage.ts +10 -0
- package/src/metrics/metrics.module.ts +32 -31
- package/src/platform.context.ts +32 -20
- package/src/platform.module.ts +18 -20
- package/src/rsdk-metadata/constants.ts +5 -0
- package/src/rsdk-metadata/rsdk-metadata.global-module.ts +34 -0
- package/src/transport/transport.module.ts +13 -1
- package/src/types/context-aggregated.ts +10 -0
- package/src/types/options.ts +6 -5
- package/src/types/transports.ts +15 -3
- package/src/unhandled-rejection.handler.ts +29 -0
- package/dist/health/index.d.ts +0 -7
- package/dist/health/index.js +0 -26
- package/dist/health/index.js.map +0 -1
- package/dist/health/metadata/index.d.ts +0 -2
- package/dist/health/metadata/index.js +0 -19
- package/dist/health/metadata/index.js.map +0 -1
- package/src/health/index.ts +0 -7
- package/src/health/metadata/index.ts +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,56 @@
|
|
|
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
|
+
# [2.0.0](https://github.com/R-Vision/rsdk/compare/v1.0.12...v2.0.0) (2023-06-06)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **autodoc:** correct resolve metadata for autodoc ([5e51fe2](https://github.com/R-Vision/rsdk/commit/5e51fe25e48b41f184e667ca94b7225bbc43696e))
|
|
11
|
+
* config forFeature collision fixed ([e93b690](https://github.com/R-Vision/rsdk/commit/e93b6905590ede648f83a80fad63b121e0f495b8))
|
|
12
|
+
* cycle deps, remove outDir from base.json in tsconfig, rework interact with AutodocMetadata and RsdkMetadata, fix unprovided imports ([cc6434b](https://github.com/R-Vision/rsdk/commit/cc6434b9d165e570bdbb2baad76b00acd14577b2))
|
|
13
|
+
* table node expects only `Record<string, string>`, not Record<string, any> ([#35](https://github.com/R-Vision/rsdk/issues/35)) ([f64bc29](https://github.com/R-Vision/rsdk/commit/f64bc29a4879d8565992a1e16e9b045dcf20d6e2))
|
|
14
|
+
|
|
15
|
+
### Draft
|
|
16
|
+
|
|
17
|
+
* Pfm 303 static to meta migration ([#45](https://github.com/R-Vision/rsdk/issues/45)) ([d98e303](https://github.com/R-Vision/rsdk/commit/d98e3032f9b10446b478427d841b9209ed68fa2d))
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* added tokens for mock in tests ([#43](https://github.com/R-Vision/rsdk/issues/43)) ([e743e51](https://github.com/R-Vision/rsdk/commit/e743e51016b0d88df12785816d33c9ccb91dbc26))
|
|
22
|
+
|
|
23
|
+
### BREAKING CHANGES
|
|
24
|
+
|
|
25
|
+
* GrpcClientModule removed
|
|
26
|
+
new way for declaration with `GrpcServers.define()` and `@InjectGrpcClient`
|
|
27
|
+
|
|
28
|
+
* fix: rework interaction with metadata and generating modules from metadata
|
|
29
|
+
|
|
30
|
+
* refactor: destructring added
|
|
31
|
+
|
|
32
|
+
* docs: added docs for autodoc pre-commit hook
|
|
33
|
+
|
|
34
|
+
* chore: spell fix
|
|
35
|
+
|
|
36
|
+
* chore: some improves declaration
|
|
37
|
+
|
|
38
|
+
* chore: laconic naming for constants
|
|
39
|
+
|
|
40
|
+
* chore: remove useless
|
|
41
|
+
|
|
42
|
+
* chore: move file to suitable place
|
|
43
|
+
|
|
44
|
+
* chore: remove useless imports
|
|
45
|
+
|
|
46
|
+
* chore!: remove boostrap tasks from Makefile
|
|
47
|
+
|
|
48
|
+
* chore: rework test tasks
|
|
49
|
+
|
|
50
|
+
* feat: grpc client plugin useless
|
|
51
|
+
|
|
52
|
+
* chore: verbosed naming
|
|
53
|
+
|
|
54
|
+
* docs: improve verbosity
|
|
55
|
+
|
|
6
56
|
## 1.0.12 (2023-05-23)
|
|
7
57
|
|
|
8
58
|
### Bug Fixes
|
|
@@ -15,7 +15,7 @@ export declare class PlatformApp {
|
|
|
15
15
|
* Get all important information about PlatformApp instance
|
|
16
16
|
* @returns Readonly metadata
|
|
17
17
|
*/
|
|
18
|
-
getMetadata(): Readonly<PlatformAppMetadata
|
|
18
|
+
getMetadata(): Promise<Readonly<PlatformAppMetadata>>;
|
|
19
19
|
/**
|
|
20
20
|
* Runs application.
|
|
21
21
|
* @returns Promise<void>
|
package/dist/app/platform.app.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PlatformApp = void 0;
|
|
4
4
|
const core_1 = require("@nestjs/core");
|
|
5
|
-
const common_1 = require("@rsdk/common");
|
|
6
5
|
const logging_1 = require("@rsdk/logging");
|
|
7
6
|
const platform_context_1 = require("../platform.context");
|
|
8
7
|
/**
|
|
@@ -15,27 +14,6 @@ class PlatformApp {
|
|
|
15
14
|
platformAppOptions;
|
|
16
15
|
static logger = logging_1.LoggerFactory.create(PlatformApp);
|
|
17
16
|
context;
|
|
18
|
-
static {
|
|
19
|
-
const { logger } = PlatformApp;
|
|
20
|
-
logger.info('Registering unhandled rejections handler...');
|
|
21
|
-
// This code enriches output if unhandled exceptions happen
|
|
22
|
-
process.on('unhandledRejection', (reason, promise) => {
|
|
23
|
-
logger.error((0, common_1.text) `
|
|
24
|
-
Unhandled promise rejection happened! Process is shutting down
|
|
25
|
-
with exit code 1. See: https://github.com/nodejs/node/issues/20392
|
|
26
|
-
and https://nodejs.org/api/process.html#event-unhandledrejection
|
|
27
|
-
`, { promise, reason });
|
|
28
|
-
/**
|
|
29
|
-
* Additionally writes to standard console, because both <promise> and <reason>
|
|
30
|
-
* can be not serializable
|
|
31
|
-
*/
|
|
32
|
-
console.error('Found unhandled rejection', {
|
|
33
|
-
promise,
|
|
34
|
-
reason,
|
|
35
|
-
});
|
|
36
|
-
process.exit(1);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
17
|
constructor(platformAppOptions) {
|
|
40
18
|
this.platformAppOptions = platformAppOptions;
|
|
41
19
|
this.context = new platform_context_1.PlatformContext(platformAppOptions);
|
|
@@ -44,8 +22,8 @@ class PlatformApp {
|
|
|
44
22
|
* Get all important information about PlatformApp instance
|
|
45
23
|
* @returns Readonly metadata
|
|
46
24
|
*/
|
|
47
|
-
getMetadata() {
|
|
48
|
-
return this.context.getMetadata();
|
|
25
|
+
async getMetadata() {
|
|
26
|
+
return await this.context.getMetadata();
|
|
49
27
|
}
|
|
50
28
|
/**
|
|
51
29
|
* Runs application.
|
|
@@ -64,7 +42,7 @@ class PlatformApp {
|
|
|
64
42
|
async createApplication() {
|
|
65
43
|
const context = this.context;
|
|
66
44
|
const nestContext = context.getNestFactoryCreateOptions();
|
|
67
|
-
const app = await core_1.NestFactory.create(context.
|
|
45
|
+
const app = await core_1.NestFactory.create(await context.getRoot(), ...nestContext);
|
|
68
46
|
await context.configureApp(app);
|
|
69
47
|
return app;
|
|
70
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.app.js","sourceRoot":"","sources":["../../src/app/platform.app.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"platform.app.js","sourceRoot":"","sources":["../../src/app/platform.app.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAC3C,2CAA8C;AAE9C,0DAAsD;AAGtD;;;;;GAKG;AACH,MAAa,WAAW;IAKD;IAJb,MAAM,CAAC,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO,CAAkB;IAElC,YAAqB,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,kCAAe,CAAC,kBAAkB,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3C,MAAM,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,iBAAiB;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAClC,MAAM,OAAO,CAAC,OAAO,EAAE,EACvB,GAAG,WAAW,CACf,CAAC;QAEF,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC;;AA3CU,kCAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-metadata.module.js","sourceRoot":"","sources":["../../src/app-metadata/app-metadata.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAwC;AAIxC,6DAA8E;
|
|
1
|
+
{"version":3,"file":"app-metadata.module.js","sourceRoot":"","sources":["../../src/app-metadata/app-metadata.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAwC;AAIxC,6DAA8E;AAG9E,IAAa,iBAAiB,yBAA9B,MAAa,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,MAAM,SAAS,GAAe;YAC5B;gBACE,OAAO,EAAE,6BAAQ;gBACjB,QAAQ,EAAE,OAAO,CAAC,IAAI;aACvB;YACD;gBACE,OAAO,EAAE,oCAAe;gBACxB,QAAQ,EAAE,OAAO,CAAC,WAAW;aAC9B;YACD;gBACE,OAAO,EAAE,gCAAW;gBACpB,QAAQ,EAAE,OAAO,CAAC,OAAO;aAC1B;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,mBAAiB;YACzB,SAAS;YAET,OAAO,EAAE,SAAS;SACnB,CAAC;IACJ,CAAC;CACF,CAAA;AAzBY,iBAAiB;IAD7B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CAyB7B;AAzBY,8CAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-name-validation.exception.js","sourceRoot":"","sources":["../../../src/app-metadata/exceptions/app-name-validation.exception.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAoC;AAEpC,iDAAiE;AACjE,sDAAqD;
|
|
1
|
+
{"version":3,"file":"app-name-validation.exception.js","sourceRoot":"","sources":["../../../src/app-metadata/exceptions/app-name-validation.exception.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAoC;AAEpC,iDAAiE;AACjE,sDAAqD;AAErD,IAMa,uBAAuB,GANpC,MAMa,uBAAwB,SAAQ,+BAAkB;IAC7D,YAAY,IAAY;QACtB,KAAK,CAAC,IAAA,aAAI,EAAA;0BACY,IAAI;QACtB,iCAAgB;;;;;KAKnB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAXY,uBAAuB;IANnC,IAAA,sBAAS,EAAC;QACT,WAAW,EAAE,IAAA,aAAI,EAAA;;;GAGhB;KACF,CAAC;;GACW,uBAAuB,CAWnC;AAXY,0DAAuB"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Constructor } from '@rsdk/common';
|
|
2
|
+
import type { ConfigContext } from '../context/config.context';
|
|
3
|
+
import type { ConfigSource } from '../sources';
|
|
2
4
|
/**
|
|
3
5
|
* Содержит логику инициализации дополнительных источников конфигурации
|
|
4
6
|
*/
|
|
5
7
|
export declare class AdditionalSourceInitializer {
|
|
8
|
+
private context;
|
|
6
9
|
private options;
|
|
7
10
|
/**
|
|
8
11
|
* Промис, состояние которого отражает состояние инициализации дополнительных источников конфигурации
|
|
9
12
|
* @private
|
|
10
13
|
*/
|
|
11
14
|
private initializePromise;
|
|
12
|
-
|
|
15
|
+
private logger;
|
|
16
|
+
constructor(context: ConfigContext, options: Constructor<ConfigSource>[]);
|
|
13
17
|
/**
|
|
14
18
|
* Инициализирует дополнительные источники конфигурации
|
|
15
19
|
* ATTENTION: Можно вызывать сколько угодно раз, однако результат будет идентичным в буквальном смысле,
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AdditionalSourceInitializer = void 0;
|
|
4
4
|
const constants_1 = require("@nestjs/common/constants");
|
|
5
|
+
const logging_1 = require("@rsdk/logging");
|
|
5
6
|
const app_metadata_const_1 = require("../../app-metadata/app-metadata.const");
|
|
6
7
|
const exceptions_1 = require("../../exceptions");
|
|
7
8
|
const exceptions_2 = require("../exceptions");
|
|
@@ -11,13 +12,16 @@ const sources_1 = require("../sources");
|
|
|
11
12
|
* Содержит логику инициализации дополнительных источников конфигурации
|
|
12
13
|
*/
|
|
13
14
|
class AdditionalSourceInitializer {
|
|
15
|
+
context;
|
|
14
16
|
options;
|
|
15
17
|
/**
|
|
16
18
|
* Промис, состояние которого отражает состояние инициализации дополнительных источников конфигурации
|
|
17
19
|
* @private
|
|
18
20
|
*/
|
|
19
21
|
initializePromise;
|
|
20
|
-
|
|
22
|
+
logger = logging_1.LoggerFactory.create(AdditionalSourceInitializer);
|
|
23
|
+
constructor(context, options) {
|
|
24
|
+
this.context = context;
|
|
21
25
|
this.options = options;
|
|
22
26
|
}
|
|
23
27
|
/**
|
|
@@ -34,7 +38,7 @@ class AdditionalSourceInitializer {
|
|
|
34
38
|
if (this.initializePromise) {
|
|
35
39
|
return this.initializePromise;
|
|
36
40
|
}
|
|
37
|
-
this.initializePromise = this.initializeAdditionalSources(
|
|
41
|
+
this.initializePromise = this.initializeAdditionalSources();
|
|
38
42
|
return this.initializePromise;
|
|
39
43
|
}
|
|
40
44
|
/**
|
|
@@ -43,16 +47,19 @@ class AdditionalSourceInitializer {
|
|
|
43
47
|
* NOTE: standalone properties from env can be used to
|
|
44
48
|
* configure additional sources
|
|
45
49
|
*/
|
|
46
|
-
async initializeAdditionalSources(
|
|
50
|
+
async initializeAdditionalSources() {
|
|
51
|
+
const options = { sources: this.options };
|
|
47
52
|
if (!options.sources || options.sources.length === 0) {
|
|
48
|
-
|
|
53
|
+
this.logger.info('No additional sources configured');
|
|
49
54
|
return;
|
|
50
55
|
}
|
|
51
|
-
const { sources
|
|
56
|
+
const { sources } = options;
|
|
57
|
+
const { events, vars } = this.context;
|
|
58
|
+
const logger = this.logger;
|
|
52
59
|
logger.info('Initializing additional configuration sources');
|
|
53
60
|
for (const ctor of sources) {
|
|
54
61
|
// We should restore the order to initialize for our ctor init later
|
|
55
|
-
const args = this.getConfigSourceArguments(
|
|
62
|
+
const args = this.getConfigSourceArguments(ctor);
|
|
56
63
|
const source = new ctor(...args);
|
|
57
64
|
logger.info('Loading configuration from source', {
|
|
58
65
|
source: source.name,
|
|
@@ -96,7 +103,7 @@ class AdditionalSourceInitializer {
|
|
|
96
103
|
* @param ctor
|
|
97
104
|
* @private
|
|
98
105
|
*/
|
|
99
|
-
getConfigSourceArguments(
|
|
106
|
+
getConfigSourceArguments(ctor) {
|
|
100
107
|
// Injectable config properties!
|
|
101
108
|
const metadata = Reflect.getMetadata(constants_1.SELF_DECLARED_DEPS_METADATA, ctor);
|
|
102
109
|
// No metadata - no args
|
|
@@ -104,22 +111,21 @@ class AdditionalSourceInitializer {
|
|
|
104
111
|
return [];
|
|
105
112
|
}
|
|
106
113
|
const sortedMetadata = [...metadata].sort((a, b) => a.index - b.index);
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return injectables.get(x.param);
|
|
114
|
+
const injectables = new Map().set(app_metadata_const_1.APP_NAME, this.context.prefix);
|
|
115
|
+
const args = sortedMetadata.map((metadata) => {
|
|
116
|
+
if (injectables.has(metadata.param)) {
|
|
117
|
+
return injectables.get(metadata.param);
|
|
112
118
|
}
|
|
113
|
-
if (!(0, metadata_1.isPropertyToken)(
|
|
114
|
-
throw new sources_1.ConfigSourceDIException(ctor,
|
|
119
|
+
if (!(0, metadata_1.isPropertyToken)(metadata.param)) {
|
|
120
|
+
throw new sources_1.ConfigSourceDIException(ctor, metadata.param);
|
|
115
121
|
}
|
|
116
|
-
const propMeta =
|
|
122
|
+
const propMeta = this.context.standalonePropertyMetadata.get(metadata.param);
|
|
117
123
|
if (!propMeta) {
|
|
118
|
-
throw new exceptions_2.ConfigPropertyMetadataNotFound(
|
|
124
|
+
throw new exceptions_2.ConfigPropertyMetadataNotFound(metadata.param);
|
|
119
125
|
}
|
|
120
|
-
const property = vars.extract(propMeta);
|
|
126
|
+
const property = this.context.vars.extract(propMeta);
|
|
121
127
|
if (!property) {
|
|
122
|
-
throw new exceptions_1.NoInitException('Config property',
|
|
128
|
+
throw new exceptions_1.NoInitException('Config property', metadata.param, 'You probably should add @DeclareProperty decorator to source class.');
|
|
123
129
|
}
|
|
124
130
|
return property;
|
|
125
131
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"additional-source.initializer.js","sourceRoot":"","sources":["../../../src/config/additional-source/additional-source.initializer.ts"],"names":[],"mappings":";;;AAAA,wDAAuE;
|
|
1
|
+
{"version":3,"file":"additional-source.initializer.js","sourceRoot":"","sources":["../../../src/config/additional-source/additional-source.initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import type { Vars } from '../vars.class';
|
|
|
11
11
|
* Инициализирует все `source` в хуке `onModuleInit`
|
|
12
12
|
*/
|
|
13
13
|
export declare class AdditionalSourceModule {
|
|
14
|
-
static forRoot(options:
|
|
14
|
+
static forRoot(options: Constructor<ConfigSource>[]): DynamicModule;
|
|
15
15
|
}
|
|
16
16
|
export interface AdditionalSourceOptions {
|
|
17
17
|
sources: Constructor<ConfigSource>[] | undefined;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AdditionalSourceModule = void 0;
|
|
4
4
|
const config_reload_indicator_1 = require("../config-reload.indicator");
|
|
5
|
+
const config_context_1 = require("../context/config.context");
|
|
5
6
|
const additional_source_initializer_1 = require("./additional-source.initializer");
|
|
6
7
|
/**
|
|
7
8
|
* Модуль реализующий работу с `AdditionalSource` указанными в конфиге.
|
|
@@ -16,8 +17,9 @@ class AdditionalSourceModule {
|
|
|
16
17
|
module: AdditionalSourceModule,
|
|
17
18
|
providers: [
|
|
18
19
|
{
|
|
20
|
+
inject: [config_context_1.ConfigContext],
|
|
19
21
|
provide: additional_source_initializer_1.AdditionalSourceInitializer,
|
|
20
|
-
|
|
22
|
+
useFactory: (configContext) => new additional_source_initializer_1.AdditionalSourceInitializer(configContext, options),
|
|
21
23
|
},
|
|
22
24
|
],
|
|
23
25
|
exports: [additional_source_initializer_1.AdditionalSourceInitializer],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"additional-source.module.js","sourceRoot":"","sources":["../../../src/config/additional-source/additional-source.module.ts"],"names":[],"mappings":";;;AAIA,wEAAmE;
|
|
1
|
+
{"version":3,"file":"additional-source.module.js","sourceRoot":"","sources":["../../../src/config/additional-source/additional-source.module.ts"],"names":[],"mappings":";;;AAIA,wEAAmE;AACnE,8DAA0D;AAO1D,mFAA8E;AAE9E;;;GAGG;AACH,MAAa,sBAAsB;IACjC,MAAM,CAAC,OAAO,CAAC,OAAoC;QACjD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,sBAAsB;oBAC9B,SAAS,EAAE;wBACT;4BACE,MAAM,EAAE,CAAC,8BAAa,CAAC;4BACvB,OAAO,EAAE,2DAA2B;4BACpC,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE,CAC3C,IAAI,2DAA2B,CAAC,aAAa,EAAE,OAAO,CAAC;yBAC1D;qBACF;oBACD,OAAO,EAAE,CAAC,2DAA2B,CAAC;iBACvC;aACF;YACD,SAAS,EAAE,CAAC,+CAAqB,CAAC;YAClC,MAAM,EAAE,sBAAsB;SAC/B,CAAC;IACJ,CAAC;CACF;AAtBD,wDAsBC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { HealthIndicator } from '../health';
|
|
2
1
|
import { CheckResult } from '../health/helpers';
|
|
2
|
+
import type { HealthIndicator } from '../health/types';
|
|
3
|
+
import { ReloadEvents } from './reload';
|
|
3
4
|
export declare class ConfigReloadIndicator implements HealthIndicator {
|
|
4
5
|
private events;
|
|
5
6
|
private errors;
|
|
6
|
-
constructor();
|
|
7
|
+
constructor(events: ReloadEvents);
|
|
7
8
|
check(): Promise<CheckResult>;
|
|
8
9
|
}
|
|
@@ -14,9 +14,10 @@ const common_1 = require("@nestjs/common");
|
|
|
14
14
|
const helpers_1 = require("../health/helpers");
|
|
15
15
|
const reload_1 = require("./reload");
|
|
16
16
|
let ConfigReloadIndicator = class ConfigReloadIndicator {
|
|
17
|
-
events
|
|
17
|
+
events;
|
|
18
18
|
errors = new Map();
|
|
19
|
-
constructor() {
|
|
19
|
+
constructor(events) {
|
|
20
|
+
this.events = events;
|
|
20
21
|
this.events
|
|
21
22
|
.on('reload_failure', (source, err) => this.errors.set(source, err))
|
|
22
23
|
.on('update_failure', (config, err) => this.errors.set(config, err))
|
|
@@ -36,7 +37,7 @@ let ConfigReloadIndicator = class ConfigReloadIndicator {
|
|
|
36
37
|
};
|
|
37
38
|
ConfigReloadIndicator = __decorate([
|
|
38
39
|
(0, common_1.Injectable)(),
|
|
39
|
-
__metadata("design:paramtypes", [])
|
|
40
|
+
__metadata("design:paramtypes", [reload_1.ReloadEvents])
|
|
40
41
|
], ConfigReloadIndicator);
|
|
41
42
|
exports.ConfigReloadIndicator = ConfigReloadIndicator;
|
|
42
43
|
//# sourceMappingURL=config-reload.indicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-reload.indicator.js","sourceRoot":"","sources":["../../src/config/config-reload.indicator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,+CAAgD;
|
|
1
|
+
{"version":3,"file":"config-reload.indicator.js","sourceRoot":"","sources":["../../src/config/config-reload.indicator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,+CAAgD;AAIhD,qCAAwC;AAGxC,IACa,qBAAqB,GADlC,MACa,qBAAqB;IAGZ;IAFZ,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEzD,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;QACtC,IAAI,CAAC,MAAM;aACR,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aACnE,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aACnE,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aACpD,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;YAC1B,OAAO,qBAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3B;QAED,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;YAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;SAChD;QAED,OAAO,qBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AAxBY,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAIiB,qBAAY;GAH7B,qBAAqB,CAwBjC;AAxBY,sDAAqB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
+
import type { ReloadEvents } from './reload';
|
|
2
3
|
import type { Vars } from './vars.class';
|
|
3
4
|
/**
|
|
4
5
|
* It is unconventional to use raw values from process.env or somewhere
|
|
@@ -7,12 +8,12 @@ import type { Vars } from './vars.class';
|
|
|
7
8
|
* @Property() decorator providing nesessary metadata.
|
|
8
9
|
*/
|
|
9
10
|
export declare class Config {
|
|
11
|
+
private readonly events;
|
|
10
12
|
/**
|
|
11
13
|
* Keys are prefixed and sources are added.
|
|
12
14
|
*/
|
|
13
15
|
private readonly propertiesMetadata;
|
|
14
|
-
|
|
15
|
-
constructor();
|
|
16
|
+
constructor(events: ReloadEvents);
|
|
16
17
|
onUpdate(fn: (keys: string[]) => void): void;
|
|
17
18
|
read(vars: Vars): string[];
|
|
18
19
|
tryUpdate(vars: Vars): void;
|
|
@@ -4,7 +4,6 @@ exports.Config = void 0;
|
|
|
4
4
|
const lodash_1 = require("lodash");
|
|
5
5
|
require("reflect-metadata");
|
|
6
6
|
const metadata_1 = require("./metadata");
|
|
7
|
-
const reload_1 = require("./reload");
|
|
8
7
|
/**
|
|
9
8
|
* It is unconventional to use raw values from process.env or somewhere
|
|
10
9
|
* else because it will not be autodocumented. Instead developer is strongly
|
|
@@ -12,13 +11,14 @@ const reload_1 = require("./reload");
|
|
|
12
11
|
* @Property() decorator providing nesessary metadata.
|
|
13
12
|
*/
|
|
14
13
|
class Config {
|
|
14
|
+
events;
|
|
15
15
|
/**
|
|
16
16
|
* Keys are prefixed and sources are added.
|
|
17
17
|
*/
|
|
18
18
|
propertiesMetadata;
|
|
19
|
-
events = reload_1.ReloadEvents.getInstance();
|
|
20
19
|
// TODO: why not to pass this.vars and event emitter?
|
|
21
|
-
constructor() {
|
|
20
|
+
constructor(events) {
|
|
21
|
+
this.events = events;
|
|
22
22
|
const metadata = Reflect.getMetadata(metadata_1.CONFIG_METADATA_KEY, this.constructor);
|
|
23
23
|
this.propertiesMetadata = metadata.properties;
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.abstract.js","sourceRoot":"","sources":["../../src/config/config.abstract.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,4BAA0B;AAE1B,yCAAiD;
|
|
1
|
+
{"version":3,"file":"config.abstract.js","sourceRoot":"","sources":["../../src/config/config.abstract.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,4BAA0B;AAE1B,yCAAiD;AAKjD;;;;;GAKG;AACH,MAAa,MAAM;IAOY;IAN7B;;OAEG;IACc,kBAAkB,CAAmC;IAEtE,qDAAqD;IACrD,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;QAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAClC,8BAAmB,EACnB,IAAI,CAAC,WAAW,CACE,CAAC;QAErB,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,EAA4B;QACnC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAS,EAAE,WAAqB,EAAE,EAAE;YAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAC3D,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,EAAE,CACvC,CAAC;YACF,IAAI,IAAA,qBAAY,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtD,EAAE,CAAC,WAAW,CAAC,CAAC;aACjB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAU;QACb,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACtE,MAAM,KAAK,GAAI,IAAY,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExC,yCAAyC;YACzC,IAAI,CAAC,IAAA,gBAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAC5B,IAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;aAClD;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,IAAU;QAClB,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SAC3C;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;SAC/C;IACH,CAAC;CACF;AArDD,wBAqDC"}
|
|
@@ -15,67 +15,7 @@ export interface ConfigModuleOptions {
|
|
|
15
15
|
*/
|
|
16
16
|
sources?: Constructor<ConfigSource>[];
|
|
17
17
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Configuration is loaded in predictable order. You should take
|
|
20
|
-
* into account chat all repeating keys will be overwritten on each step:
|
|
21
|
-
*
|
|
22
|
-
* 1. .env file if there is any
|
|
23
|
-
* 2. process environment
|
|
24
|
-
* 3. динамические source'ы (если сделать последовательно - то в порядке указания)
|
|
25
|
-
*/
|
|
26
18
|
export declare class PlatformConfigModule {
|
|
27
|
-
private static isBootstrapped;
|
|
28
|
-
private static events;
|
|
29
|
-
private static vars;
|
|
30
|
-
private static prefix;
|
|
31
|
-
/**
|
|
32
|
-
* Проинициализированные секции конфигов
|
|
33
|
-
* @private
|
|
34
|
-
*/
|
|
35
|
-
private static initializedConfigs;
|
|
36
|
-
/**
|
|
37
|
-
* undefined является валидным значением по умолчанию (`defaultValue`)
|
|
38
|
-
* @private
|
|
39
|
-
*/
|
|
40
|
-
private static properties;
|
|
41
|
-
/**
|
|
42
|
-
* We don't use class as context here because it is undefined if
|
|
43
|
-
* tsc target is ES2022
|
|
44
|
-
*/
|
|
45
|
-
private static logger;
|
|
46
|
-
/**
|
|
47
|
-
* Метадата о необходимых приложению значениях конфигурации
|
|
48
|
-
* Зачем храним?
|
|
49
|
-
* Потому что пайплайн такой:
|
|
50
|
-
* 1. Собираем данные о том какие поля нам нужны
|
|
51
|
-
* 2. Приложение запрашивает поле из конфигурации
|
|
52
|
-
* 3. Ищем метаданные
|
|
53
|
-
* 4. По метаданным вытягиваем значение
|
|
54
|
-
* 5. Отдаём значение
|
|
55
|
-
*
|
|
56
|
-
* Это важно так как позволяет прозрачным образом контролировать этот процесс и инициализировать поля в тот момент когда они потребуются
|
|
57
|
-
* А не в тот момент когда их объявили
|
|
58
|
-
* Основной кейс, где это применяется - тесты
|
|
59
|
-
* @private
|
|
60
|
-
*/
|
|
61
|
-
private static propertyMetadata;
|
|
62
|
-
/**
|
|
63
|
-
* This method should be invoked BEFORE bootstrapping nest application.
|
|
64
|
-
*
|
|
65
|
-
* It takes 2 main actions:
|
|
66
|
-
* - load environment variables
|
|
67
|
-
*
|
|
68
|
-
* - instantiates all configuration initializedConfig (classes marked with
|
|
69
|
-
* @ConfigSection() decorator) and adds them into internal storage
|
|
70
|
-
*
|
|
71
|
-
* If any of these actions fails - application should exit.
|
|
72
|
-
*
|
|
73
|
-
* NOTE: This method should be invoked before any other interaction
|
|
74
|
-
* with ConfigurationModule
|
|
75
|
-
*
|
|
76
|
-
* ATTENTION: not load values from additional source
|
|
77
|
-
*/
|
|
78
|
-
static bootstrap(options?: ConfigModuleOptions): void;
|
|
79
19
|
/**
|
|
80
20
|
* Use this method to imports specific configuration property
|
|
81
21
|
* into given module
|
|
@@ -96,26 +36,5 @@ export declare class PlatformConfigModule {
|
|
|
96
36
|
*/
|
|
97
37
|
static forFeature(ctor: Constructor<Config>): DynamicModule;
|
|
98
38
|
static forRoot(options: PlatformOptions): DynamicModule;
|
|
99
|
-
/**
|
|
100
|
-
* Extracting specific instance of configuration section by
|
|
101
|
-
* its class reference. Throws error if called before .bootstrap()
|
|
102
|
-
*
|
|
103
|
-
* ATTENTION: Конфиг будет разрешен с доступными на данный момент переменными,
|
|
104
|
-
* то есть если дополнительные источники конфигурации ещё не были проинициализированы,
|
|
105
|
-
* они не будут учтены в разрешении конфигурации.
|
|
106
|
-
*
|
|
107
|
-
* @param ctor Pass constructor of configuration section class
|
|
108
|
-
* @returns T
|
|
109
|
-
*/
|
|
110
|
-
static resolve<T extends Config>(ctor: Constructor<T>): T;
|
|
111
39
|
private static getPropertyProvider;
|
|
112
|
-
private static readEnvironment;
|
|
113
|
-
private static extractStandaloneProperties;
|
|
114
|
-
/**
|
|
115
|
-
* Инициализирует инстанс секции конфига
|
|
116
|
-
* ATTENTION: не проверяет есть ли ещё проинициализированные, будьте внимательны во избежание неожиданного поведение
|
|
117
|
-
* @param ctor
|
|
118
|
-
* @private
|
|
119
|
-
*/
|
|
120
|
-
private static instantiateSection;
|
|
121
40
|
}
|