@rsdk/core 3.1.0-next.1 → 3.1.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 +10 -0
- package/dist/context.aggregator.js +4 -1
- package/dist/context.aggregator.js.map +1 -1
- package/dist/rsdk-metadata/config-metadata.extractor.d.ts +8 -0
- package/dist/rsdk-metadata/config-metadata.extractor.js +38 -0
- package/dist/rsdk-metadata/config-metadata.extractor.js.map +1 -0
- package/dist/rsdk-metadata/rsdk-metadata.global-module.js +2 -1
- package/dist/rsdk-metadata/rsdk-metadata.global-module.js.map +1 -1
- package/package.json +10 -10
- package/src/context.aggregator.ts +2 -2
- package/src/rsdk-metadata/config-metadata.extractor.ts +56 -0
- package/src/rsdk-metadata/rsdk-metadata.global-module.ts +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
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
|
+
## [3.1.0](https://github.com/R-Vision/rsdk/compare/v3.1.0-next.3...v3.1.0) (2023-08-09)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rsdk/core
|
|
9
|
+
|
|
10
|
+
## [3.1.0-next.2](https://github.com/R-Vision/rsdk/compare/v3.1.0-next.1...v3.1.0-next.2) (2023-08-08)
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* config section without requirements `.forFeature(ctor)` ([#95](https://github.com/R-Vision/rsdk/issues/95)) ([0dfa194](https://github.com/R-Vision/rsdk/commit/0dfa1949cd48d98d784b61c21fa9d05048252734))
|
|
15
|
+
|
|
6
16
|
## [3.1.0-next.1](https://github.com/R-Vision/rsdk/compare/v3.1.0-next.0...v3.1.0-next.1) (2023-08-08)
|
|
7
17
|
|
|
8
18
|
### Features
|
|
@@ -26,7 +26,10 @@ class ContextAggregator {
|
|
|
26
26
|
}
|
|
27
27
|
const platformRoot = platform_module_1.PlatformModule.forRoot(this.platformContext.extendedOptions);
|
|
28
28
|
const rsdkMetadataGlobalModule = await rsdk_metadata_global_module_1.RsdkMetadataGlobalModule.raw(platformRoot);
|
|
29
|
-
const rsdkMetadataProvider = await metadata_1.RsdkMetadataProvider.create(
|
|
29
|
+
const rsdkMetadataProvider = await metadata_1.RsdkMetadataProvider.create([
|
|
30
|
+
rsdkMetadataGlobalModule,
|
|
31
|
+
platformRoot,
|
|
32
|
+
]);
|
|
30
33
|
const configContext = new config_1.ConfigContext(rsdkMetadataProvider, {
|
|
31
34
|
...this.platformContext.options.config,
|
|
32
35
|
appName: this.platformContext.extendedOptions.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.aggregator.js","sourceRoot":"","sources":["../src/context.aggregator.ts"],"names":[],"mappings":";;;AACA,6CAAsD;AAEtD,oDAA8D;AAC9D,6FAAuF;AAEvF,qCAAyC;AAEzC,uDAAmD;AAEnD,MAAa,iBAAiB;IAGR;IAFZ,WAAW,CAAqB;IAExC,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAExD;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QACD,MAAM,YAAY,GAAG,gCAAc,CAAC,OAAO,CACzC,IAAI,CAAC,eAAe,CAAC,eAAe,CACrC,CAAC;QACF,MAAM,wBAAwB,GAAG,MAAM,sDAAwB,CAAC,GAAG,CACjE,YAAY,CACb,CAAC;QACF,MAAM,oBAAoB,GAAG,MAAM,+BAAoB,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"context.aggregator.js","sourceRoot":"","sources":["../src/context.aggregator.ts"],"names":[],"mappings":";;;AACA,6CAAsD;AAEtD,oDAA8D;AAC9D,6FAAuF;AAEvF,qCAAyC;AAEzC,uDAAmD;AAEnD,MAAa,iBAAiB;IAGR;IAFZ,WAAW,CAAqB;IAExC,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAExD;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QACD,MAAM,YAAY,GAAG,gCAAc,CAAC,OAAO,CACzC,IAAI,CAAC,eAAe,CAAC,eAAe,CACrC,CAAC;QACF,MAAM,wBAAwB,GAAG,MAAM,sDAAwB,CAAC,GAAG,CACjE,YAAY,CACb,CAAC;QACF,MAAM,oBAAoB,GAAG,MAAM,+BAAoB,CAAC,MAAM,CAAC;YAC7D,wBAAwB;YACxB,YAAY;SACb,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,sBAAa,CAAC,oBAAoB,EAAE;YAC5D,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM;YACtC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI;SACnD,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG;YACX,OAAO,EAAE;gBACP,YAAY;gBACZ,wBAAwB;gBACxB,4BAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;aAC3C;YACD,MAAM,EAAE,iBAAiB;SAC1B,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,8DAA8D;QAC9D,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE9C,OAAO,UAAU,CAAC,oBAAoB,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE5C,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAjED,8CAiEC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ClassProvider, DynamicModule, ExistingProvider, FactoryProvider, InjectionToken, ValueProvider } from '@nestjs/common';
|
|
2
|
+
import type { Resource, ResourceExtractor } from '@rsdk/metadata';
|
|
3
|
+
/**
|
|
4
|
+
* @private
|
|
5
|
+
*/
|
|
6
|
+
export declare class ConfigMetadataExtractor implements ResourceExtractor {
|
|
7
|
+
extract(value: DynamicModule | ClassProvider<any> | ValueProvider<any> | FactoryProvider<any> | ExistingProvider<any> | InjectionToken): Resource<unknown>[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigMetadataExtractor = void 0;
|
|
4
|
+
const config_1 = require("../config");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
/**
|
|
7
|
+
* @private
|
|
8
|
+
*/
|
|
9
|
+
class ConfigMetadataExtractor {
|
|
10
|
+
extract(value) {
|
|
11
|
+
/**
|
|
12
|
+
* Получаем аргументы конструктора
|
|
13
|
+
*/
|
|
14
|
+
const args = Reflect.getMetadata('design:paramtypes', value);
|
|
15
|
+
/**
|
|
16
|
+
* Если их нет, просто возвращаем пустой массив
|
|
17
|
+
*/
|
|
18
|
+
if (!Array.isArray(args)) {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
const resources = [];
|
|
22
|
+
for (const arg of args) {
|
|
23
|
+
const isConfigSection = Reflect.getMetadata(config_1.CONFIG_METADATA_KEY, arg) &&
|
|
24
|
+
arg.prototype instanceof config_1.Config;
|
|
25
|
+
if (!isConfigSection) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
resources.push({
|
|
29
|
+
value: config_1.PlatformConfigModule.forFeature(arg),
|
|
30
|
+
key: arg,
|
|
31
|
+
scope: constants_1.PLATFORM_RAW_GLOBAL_METADATA_SCOPE,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return resources;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.ConfigMetadataExtractor = ConfigMetadataExtractor;
|
|
38
|
+
//# sourceMappingURL=config-metadata.extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-metadata.extractor.js","sourceRoot":"","sources":["../../src/rsdk-metadata/config-metadata.extractor.ts"],"names":[],"mappings":";;;AAUA,sCAA8E;AAE9E,2CAAiE;AAEjE;;GAEG;AACH,MAAa,uBAAuB;IAClC,OAAO,CACL,KAMkB;QAElB;;WAEG;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC7D;;WAEG;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,EAAE,CAAC;SACX;QACD,MAAM,SAAS,GAA8B,EAAE,CAAC;QAEhD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,eAAe,GACnB,OAAO,CAAC,WAAW,CAAC,4BAAmB,EAAE,GAAG,CAAC;gBAC7C,GAAG,CAAC,SAAS,YAAY,eAAM,CAAC;YAElC,IAAI,CAAC,eAAe,EAAE;gBACpB,SAAS;aACV;YACD,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,6BAAoB,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC3C,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,8CAAkC;aAC1C,CAAC,CAAC;SACJ;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAtCD,0DAsCC"}
|
|
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RsdkMetadataGlobalModule = void 0;
|
|
4
4
|
const logging_1 = require("@rsdk/logging");
|
|
5
5
|
const metadata_1 = require("@rsdk/metadata");
|
|
6
|
+
const config_metadata_extractor_1 = require("./config-metadata.extractor");
|
|
6
7
|
const constants_1 = require("./constants");
|
|
7
8
|
class RsdkMetadataGlobalModule {
|
|
8
9
|
static logger = logging_1.LoggerFactory.create(RsdkMetadataGlobalModule);
|
|
9
10
|
static async raw(rootModule) {
|
|
10
|
-
const rsdkMetadataProvider = await metadata_1.RsdkMetadataProvider.create(rootModule);
|
|
11
|
+
const rsdkMetadataProvider = await metadata_1.RsdkMetadataProvider.create([rootModule], [new config_metadata_extractor_1.ConfigMetadataExtractor()]);
|
|
11
12
|
const resources = rsdkMetadataProvider.get(constants_1.PLATFORM_RAW_GLOBAL_METADATA_SCOPE);
|
|
12
13
|
const imports = resources.map(({ value }) => value);
|
|
13
14
|
RsdkMetadataGlobalModule.logger.trace('extracted imports: ', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsdk-metadata.global-module.js","sourceRoot":"","sources":["../../src/rsdk-metadata/rsdk-metadata.global-module.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAC9C,6CAAsD;
|
|
1
|
+
{"version":3,"file":"rsdk-metadata.global-module.js","sourceRoot":"","sources":["../../src/rsdk-metadata/rsdk-metadata.global-module.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAC9C,6CAAsD;AAGtD,2EAAsE;AAEtE,2CAAiE;AAEjE,MAAa,wBAAwB;IACnC,MAAM,CAAC,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAE/D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAgC;QAC/C,MAAM,oBAAoB,GAAG,MAAM,+BAAoB,CAAC,MAAM,CAC5D,CAAC,UAAU,CAAC,EACZ,CAAC,IAAI,mDAAuB,EAAE,CAAC,CAChC,CAAC;QAEF,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CACxC,8CAAkC,CACnC,CAAC;QACF,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAEpD,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAC3D,OAAO;SACR,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,OAAO;YACP,MAAM,EAAE,wBAAwB;YAChC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,+BAAoB;oBAC7B,QAAQ,EAAE,oBAAoB;iBAC/B;aACF;YACD,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,+BAAoB,CAAC;SAC5C,CAAC;IACJ,CAAC;;AA7BH,4DA8BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/core",
|
|
3
|
-
"version": "3.1.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Nestjs based microservice chassis",
|
|
5
5
|
"license": "Apache License 2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -31,17 +31,17 @@
|
|
|
31
31
|
"@nestjs/common": "^10.1.3",
|
|
32
32
|
"@nestjs/core": "^10.1.3",
|
|
33
33
|
"@nestjs/microservices": "^10.1.3",
|
|
34
|
-
"@rsdk/autodoc.protocol": "^3.1.0
|
|
35
|
-
"@rsdk/common": "^3.1.0
|
|
36
|
-
"@rsdk/common.nestjs": "^3.1.0
|
|
37
|
-
"@rsdk/common.node": "^3.1.0
|
|
38
|
-
"@rsdk/decorators": "^3.1.0
|
|
39
|
-
"@rsdk/logging": "^3.1.0
|
|
40
|
-
"@rsdk/metadata": "^3.1.0
|
|
41
|
-
"@rsdk/nest-tools": "^3.1.0
|
|
34
|
+
"@rsdk/autodoc.protocol": "^3.1.0",
|
|
35
|
+
"@rsdk/common": "^3.1.0",
|
|
36
|
+
"@rsdk/common.nestjs": "^3.1.0",
|
|
37
|
+
"@rsdk/common.node": "^3.1.0",
|
|
38
|
+
"@rsdk/decorators": "^3.1.0",
|
|
39
|
+
"@rsdk/logging": "^3.1.0",
|
|
40
|
+
"@rsdk/metadata": "^3.1.0",
|
|
41
|
+
"@rsdk/nest-tools": "^3.1.0",
|
|
42
42
|
"axios": "^1.1.3",
|
|
43
43
|
"reflect-metadata": "^0.1.13",
|
|
44
44
|
"rxjs": "^7.0.0"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "428640441ec53822ea1c1be7b085bb9dad04689d"
|
|
47
47
|
}
|
|
@@ -31,10 +31,10 @@ export class ContextAggregator {
|
|
|
31
31
|
const rsdkMetadataGlobalModule = await RsdkMetadataGlobalModule.raw(
|
|
32
32
|
platformRoot,
|
|
33
33
|
);
|
|
34
|
-
const rsdkMetadataProvider = await RsdkMetadataProvider.create(
|
|
34
|
+
const rsdkMetadataProvider = await RsdkMetadataProvider.create([
|
|
35
35
|
rsdkMetadataGlobalModule,
|
|
36
36
|
platformRoot,
|
|
37
|
-
);
|
|
37
|
+
]);
|
|
38
38
|
|
|
39
39
|
const configContext = new ConfigContext(rsdkMetadataProvider, {
|
|
40
40
|
...this.platformContext.options.config,
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ClassProvider,
|
|
3
|
+
DynamicModule,
|
|
4
|
+
ExistingProvider,
|
|
5
|
+
FactoryProvider,
|
|
6
|
+
InjectionToken,
|
|
7
|
+
ValueProvider,
|
|
8
|
+
} from '@nestjs/common';
|
|
9
|
+
import type { Resource, ResourceExtractor } from '@rsdk/metadata';
|
|
10
|
+
|
|
11
|
+
import { Config, CONFIG_METADATA_KEY, PlatformConfigModule } from '../config';
|
|
12
|
+
|
|
13
|
+
import { PLATFORM_RAW_GLOBAL_METADATA_SCOPE } from './constants';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
export class ConfigMetadataExtractor implements ResourceExtractor {
|
|
19
|
+
extract(
|
|
20
|
+
value:
|
|
21
|
+
| DynamicModule
|
|
22
|
+
| ClassProvider<any>
|
|
23
|
+
| ValueProvider<any>
|
|
24
|
+
| FactoryProvider<any>
|
|
25
|
+
| ExistingProvider<any>
|
|
26
|
+
| InjectionToken,
|
|
27
|
+
): Resource<unknown>[] {
|
|
28
|
+
/**
|
|
29
|
+
* Получаем аргументы конструктора
|
|
30
|
+
*/
|
|
31
|
+
const args = Reflect.getMetadata('design:paramtypes', value);
|
|
32
|
+
/**
|
|
33
|
+
* Если их нет, просто возвращаем пустой массив
|
|
34
|
+
*/
|
|
35
|
+
if (!Array.isArray(args)) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
const resources: Resource<DynamicModule>[] = [];
|
|
39
|
+
|
|
40
|
+
for (const arg of args) {
|
|
41
|
+
const isConfigSection =
|
|
42
|
+
Reflect.getMetadata(CONFIG_METADATA_KEY, arg) &&
|
|
43
|
+
arg.prototype instanceof Config;
|
|
44
|
+
|
|
45
|
+
if (!isConfigSection) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
resources.push({
|
|
49
|
+
value: PlatformConfigModule.forFeature(arg),
|
|
50
|
+
key: arg,
|
|
51
|
+
scope: PLATFORM_RAW_GLOBAL_METADATA_SCOPE,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return resources;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -3,13 +3,19 @@ import { LoggerFactory } from '@rsdk/logging';
|
|
|
3
3
|
import { RsdkMetadataProvider } from '@rsdk/metadata';
|
|
4
4
|
import type { NestModuleDefinition } from '@rsdk/nest-tools/dist/nest-definition';
|
|
5
5
|
|
|
6
|
+
import { ConfigMetadataExtractor } from './config-metadata.extractor';
|
|
6
7
|
import type { PlatformRawGlobalMetadata } from './constants';
|
|
7
8
|
import { PLATFORM_RAW_GLOBAL_METADATA_SCOPE } from './constants';
|
|
8
9
|
|
|
9
10
|
export class RsdkMetadataGlobalModule {
|
|
10
11
|
static logger = LoggerFactory.create(RsdkMetadataGlobalModule);
|
|
12
|
+
|
|
11
13
|
static async raw(rootModule: NestModuleDefinition): Promise<DynamicModule> {
|
|
12
|
-
const rsdkMetadataProvider = await RsdkMetadataProvider.create(
|
|
14
|
+
const rsdkMetadataProvider = await RsdkMetadataProvider.create(
|
|
15
|
+
[rootModule],
|
|
16
|
+
[new ConfigMetadataExtractor()],
|
|
17
|
+
);
|
|
18
|
+
|
|
13
19
|
const resources = rsdkMetadataProvider.get<PlatformRawGlobalMetadata>(
|
|
14
20
|
PLATFORM_RAW_GLOBAL_METADATA_SCOPE,
|
|
15
21
|
);
|