@rsdk/metadata 3.4.0 → 3.4.1-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/exception.d.ts +4 -0
- package/dist/exception.js +9 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/metadata.js +3 -2
- package/dist/resource-aggregator.d.ts +1 -1
- package/dist/resource-aggregator.js +1 -1
- package/dist/rsdk-metadata-provider.d.ts +1 -1
- package/dist/rsdk-metadata-provider.js +6 -4
- package/dist/utils/nest-assert.d.ts +6 -0
- package/dist/utils/nest-assert.js +16 -0
- package/package.json +3 -3
package/dist/exception.d.ts
CHANGED
|
@@ -8,4 +8,8 @@ export declare class ExtractFailed extends RsdkMetadataProviderException {
|
|
|
8
8
|
readonly metadataSource: unknown;
|
|
9
9
|
constructor(exception: unknown, extractor: ResourceExtractor, metadataSource: unknown);
|
|
10
10
|
}
|
|
11
|
+
export declare class IncorrectNestDefinitionType extends RsdkMetadataProviderException {
|
|
12
|
+
readonly nestDefinition: unknown;
|
|
13
|
+
constructor(nestDefinition: unknown);
|
|
14
|
+
}
|
|
11
15
|
export {};
|
package/dist/exception.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExtractFailed = void 0;
|
|
3
|
+
exports.IncorrectNestDefinitionType = exports.ExtractFailed = void 0;
|
|
4
4
|
class RsdkMetadataProviderException extends Error {
|
|
5
5
|
name = this.constructor.name;
|
|
6
6
|
}
|
|
@@ -16,3 +16,11 @@ class ExtractFailed extends RsdkMetadataProviderException {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
exports.ExtractFailed = ExtractFailed;
|
|
19
|
+
class IncorrectNestDefinitionType extends RsdkMetadataProviderException {
|
|
20
|
+
nestDefinition;
|
|
21
|
+
constructor(nestDefinition) {
|
|
22
|
+
super(`Expect object, but received: ${nestDefinition}`);
|
|
23
|
+
this.nestDefinition = nestDefinition;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.IncorrectNestDefinitionType = IncorrectNestDefinitionType;
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RsdkMetadata = exports.RsdkMetadataProvider = void 0;
|
|
3
|
+
exports.RsdkMetadata = exports.RsdkMetadataProvider = exports.NestAssert = void 0;
|
|
4
4
|
require("reflect-metadata");
|
|
5
|
+
var nest_assert_1 = require("./utils/nest-assert");
|
|
6
|
+
Object.defineProperty(exports, "NestAssert", { enumerable: true, get: function () { return nest_assert_1.NestAssert; } });
|
|
5
7
|
var rsdk_metadata_provider_1 = require("./rsdk-metadata-provider");
|
|
6
8
|
Object.defineProperty(exports, "RsdkMetadataProvider", { enumerable: true, get: function () { return rsdk_metadata_provider_1.RsdkMetadataProvider; } });
|
|
7
9
|
var metadata_1 = require("./metadata");
|
package/dist/metadata.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RsdkMetadata = void 0;
|
|
4
4
|
const common_1 = require("@rsdk/common");
|
|
5
|
+
const nest_assert_1 = require("./utils/nest-assert");
|
|
5
6
|
const constants_1 = require("./constants");
|
|
6
7
|
/**
|
|
7
8
|
* RSDK metadata for object
|
|
@@ -16,9 +17,9 @@ class RsdkMetadata {
|
|
|
16
17
|
constructor(target, scope) {
|
|
17
18
|
this.target = target;
|
|
18
19
|
this.scope = scope;
|
|
19
|
-
if (!
|
|
20
|
+
if (!nest_assert_1.NestAssert.isObjectOrCtor(target)) {
|
|
20
21
|
// TODO InternalException
|
|
21
|
-
throw new
|
|
22
|
+
throw new TypeError((0, common_1.text) `
|
|
22
23
|
Target must be object or function.
|
|
23
24
|
Received: <${target}>.
|
|
24
25
|
Type of target: - ${typeof target}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Resource } from './metadata';
|
|
2
2
|
/**
|
|
3
|
-
* Хелпер для работы с массивами
|
|
3
|
+
* Хелпер для работы с массивами ресурсов, включающий функционал дедупликации по сигнатуре
|
|
4
4
|
*/
|
|
5
5
|
export declare class ResourceAggregator {
|
|
6
6
|
readonly resources: Resource<unknown>[];
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ResourceAggregator = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Хелпер для работы с массивами
|
|
5
|
+
* Хелпер для работы с массивами ресурсов, включающий функционал дедупликации по сигнатуре
|
|
6
6
|
*/
|
|
7
7
|
class ResourceAggregator {
|
|
8
8
|
resources = [];
|
|
@@ -12,7 +12,7 @@ export declare class RsdkMetadataProvider {
|
|
|
12
12
|
private readonly resources;
|
|
13
13
|
protected constructor(resources: Resource<any>[]);
|
|
14
14
|
static create(modules: Promisable<NestModuleDefinition>[], extractors?: ResourceExtractor[]): Promise<RsdkMetadataProvider>;
|
|
15
|
-
static getMetadataSource(nestDefinition: DynamicModule | Type | ClassProvider | ValueProvider | FactoryProvider | ExistingProvider): IterableIterator<InjectionToken | DynamicModule | Type | ClassProvider | ValueProvider | FactoryProvider | ExistingProvider>;
|
|
15
|
+
static getMetadataSource(nestDefinition: DynamicModule | Type | ClassProvider | ValueProvider | FactoryProvider | ExistingProvider | Function): IterableIterator<InjectionToken | DynamicModule | Type | ClassProvider | ValueProvider | FactoryProvider | ExistingProvider>;
|
|
16
16
|
/**
|
|
17
17
|
* Есть ли уже этот ресурс в массиве
|
|
18
18
|
* Проверка осуществляется на основе `key` и `scope` у `Resource`
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RsdkMetadataProvider = void 0;
|
|
4
4
|
const nest_tools_1 = require("@rsdk/nest-tools");
|
|
5
|
+
const nest_assert_1 = require("./utils/nest-assert");
|
|
5
6
|
const exception_1 = require("./exception");
|
|
6
7
|
const metadata_1 = require("./metadata");
|
|
7
8
|
const resource_aggregator_1 = require("./resource-aggregator");
|
|
@@ -22,8 +23,9 @@ class RsdkMetadataProvider {
|
|
|
22
23
|
}
|
|
23
24
|
static *getMetadataSource(nestDefinition) {
|
|
24
25
|
// TODO: throw exception
|
|
25
|
-
if (
|
|
26
|
-
|
|
26
|
+
if (!nest_assert_1.NestAssert.isNestDefinition(nestDefinition) ||
|
|
27
|
+
nestDefinition === null) {
|
|
28
|
+
throw new exception_1.IncorrectNestDefinitionType(nestDefinition);
|
|
27
29
|
}
|
|
28
30
|
if ('useClass' in nestDefinition) {
|
|
29
31
|
yield nestDefinition.useClass;
|
|
@@ -50,11 +52,11 @@ class RsdkMetadataProvider {
|
|
|
50
52
|
for await (const rootModuleElement of rootModule) {
|
|
51
53
|
const nestDefinitionIterator = new nest_tools_1.NestDefinitionIterator(rootModuleElement);
|
|
52
54
|
for await (const nestDefinition of nestDefinitionIterator.iterate()) {
|
|
53
|
-
if (!
|
|
55
|
+
if (!nest_assert_1.NestAssert.isNestDefinition(nestDefinition)) {
|
|
54
56
|
continue;
|
|
55
57
|
}
|
|
56
58
|
for (const metadataSource of this.getMetadataSource(nestDefinition)) {
|
|
57
|
-
if (!
|
|
59
|
+
if (!nest_assert_1.NestAssert.isNestDefinition(metadataSource)) {
|
|
58
60
|
continue;
|
|
59
61
|
}
|
|
60
62
|
const definitionResources = metadata_1.RsdkMetadata.get(metadataSource);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Abstract, ClassProvider, DynamicModule, ExistingProvider, FactoryProvider, Type, ValueProvider } from '@nestjs/common';
|
|
2
|
+
export declare class NestAssert {
|
|
3
|
+
static isNestDefinition(nestDefinition: DynamicModule | Type<any> | ClassProvider<any> | ValueProvider<any> | FactoryProvider<any> | ExistingProvider<any> | string | symbol | Abstract<any>): nestDefinition is DynamicModule | Type<any> | ClassProvider<any> | ValueProvider<any> | FactoryProvider<any> | ExistingProvider<any> | Abstract<any> | Function;
|
|
4
|
+
static isObjectOrCtor(v: unknown): v is object | Function;
|
|
5
|
+
static isObject(v: unknown): v is object;
|
|
6
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NestAssert = void 0;
|
|
4
|
+
class NestAssert {
|
|
5
|
+
static isNestDefinition(nestDefinition) {
|
|
6
|
+
return ['object', 'function'].includes(typeof nestDefinition);
|
|
7
|
+
}
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
9
|
+
static isObjectOrCtor(v) {
|
|
10
|
+
return ['object', 'function'].includes(typeof v);
|
|
11
|
+
}
|
|
12
|
+
static isObject(v) {
|
|
13
|
+
return typeof v === 'object';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.NestAssert = NestAssert;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/metadata",
|
|
3
|
-
"version": "3.4.0",
|
|
3
|
+
"version": "3.4.1-next.0",
|
|
4
4
|
"license": "Apache License 2.0",
|
|
5
5
|
"description": "Rsdk stack metadata management",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"@nestjs/core": "^10.1.3",
|
|
16
16
|
"@rsdk/common": "^3.2.0",
|
|
17
17
|
"@rsdk/logging": "^3.2.0",
|
|
18
|
-
"@rsdk/nest-tools": "^3.1.0",
|
|
18
|
+
"@rsdk/nest-tools": "^3.4.1-next.0",
|
|
19
19
|
"reflect-metadata": "^0.1.13"
|
|
20
20
|
},
|
|
21
|
-
"gitHead": "
|
|
21
|
+
"gitHead": "ea16db30e841625857ace62dff377e2c5a952980"
|
|
22
22
|
}
|