@rsdk/core 2.6.0-next.3 → 2.6.0-next.5
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 +6 -0
- package/dist/config/config.module.js.map +1 -1
- package/dist/config/context/config.context.d.ts +3 -3
- package/dist/config/context/config.context.js.map +1 -1
- package/dist/config/metadata/decorators/declare-property.decorator.d.ts +2 -2
- package/dist/config/metadata/decorators/property.decorator.d.ts +2 -2
- package/dist/config/metadata/decorators/property.decorator.js.map +1 -1
- package/dist/config/parsers/array.parser.d.ts +2 -2
- package/dist/config/parsers/array.parser.js.map +1 -1
- package/dist/config/types.d.ts +4 -6
- package/dist/config/vars.class.d.ts +2 -2
- package/dist/config/vars.class.js.map +1 -1
- package/dist/types/metadata.js.map +1 -1
- package/package.json +2 -2
- package/src/config/config.module.ts +3 -4
- package/src/config/context/config.context.ts +4 -8
- package/src/config/metadata/decorators/declare-property.decorator.ts +2 -2
- package/src/config/metadata/decorators/property.decorator.ts +1 -2
- package/src/config/parsers/array.parser.ts +2 -8
- package/src/config/types.ts +4 -15
- package/src/config/vars.class.ts +1 -4
- package/src/types/metadata.ts +1 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
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.6.0-next.5](https://github.com/R-Vision/rsdk/compare/v2.6.0-next.4...v2.6.0-next.5) (2023-07-22)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* remove restrictions for config values (now it extends any) ([7c2abd8](https://github.com/R-Vision/rsdk/commit/7c2abd85934f5007ec37c7c43ff3a3f62117eb4c))
|
|
11
|
+
|
|
6
12
|
# [2.6.0-next.3](https://github.com/R-Vision/rsdk/compare/v2.6.0-next.2...v2.6.0-next.3) (2023-07-07)
|
|
7
13
|
|
|
8
14
|
**Note:** Version bump only for package @rsdk/core
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../src/config/config.module.ts"],"names":[],"mappings":";;;AAKA,qGAAgG;AAChG,2FAAsF;AACtF,6DAAyD;AAEzD,yCAA8C;
|
|
1
|
+
{"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../src/config/config.module.ts"],"names":[],"mappings":";;;AAKA,qGAAgG;AAChG,2FAAsF;AACtF,6DAAyD;AAEzD,yCAA8C;AAiB9C,MAAa,oBAAoB;IAC/B;;;;;;;;;;OAUG;IACH,MAAM,CAAC,WAAW,CAAC,KAAa;QAC9B,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO;YACL,MAAM,EAAE,oBAAoB;YAC5B,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,OAAO,EAAE,CAAC,QAAQ,CAAC;SACpB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,IAAyB;QACzC;;;WAGG;QACH,MAAM,QAAQ,GAAoB;YAChC,MAAM,EAAE;gBACN,8BAAa;gBACb,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,2DAA2B,EAAE;aACvD;YACD,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK,EACf,aAA4B,EAC5B,iCAA+D,EAC/D,EAAE;gBACF;;mBAEG;gBACH,MAAM,iCAAiC,EAAE,UAAU,EAAE,CAAC;gBACtD,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;SACF,CAAC;QAEF,OAAO;YACL;;;;eAIG;YACH,MAAM,EAAE,oBAAoB;YAC5B,SAAS,EAAE,CAAC,QAAQ,CAAC;YAErB,OAAO,EAAE,CAAC,QAAQ,CAAC;SACpB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAwB;QACrC,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,MAAM,OAAO,GAA+C,EAAE,CAAC;QAE/D,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,iDAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SACvE;QAED,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,OAAO;YACP,MAAM,EAAE,oBAAoB;YAC5B,SAAS;YACT,OAAO,EAAE,SAAS;SACnB,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAChC,KAA6C;QAE7C,OAAO;YACL,MAAM,EAAE;gBACN,8BAAa;gBACb,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,2DAA2B,EAAE;aACvD;YACD,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK,EACf,aAA4B,EAC5B,iCAA+D,EACvC,EAAE;gBAC1B,MAAM,iCAAiC,EAAE,UAAU,EAAE,CAAC;gBACtD,OAAO,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;SACF,CAAC;IACJ,CAAC;CACF;AApGD,oDAoGC"}
|
|
@@ -11,7 +11,7 @@ import type { RsdkMetadataProvider } from '@rsdk/metadata';
|
|
|
11
11
|
import type { Config } from '../config.abstract';
|
|
12
12
|
import type { ConfigModuleOptions } from '../config.module';
|
|
13
13
|
import { ReloadEvents } from '../reload';
|
|
14
|
-
import type {
|
|
14
|
+
import type { PropertyMetadata } from '../types';
|
|
15
15
|
import { Vars } from '../vars.class';
|
|
16
16
|
export declare class ConfigContext {
|
|
17
17
|
readonly events: ReloadEvents;
|
|
@@ -33,7 +33,7 @@ export declare class ConfigContext {
|
|
|
33
33
|
* Основной кейс, где это применяется - тесты
|
|
34
34
|
* @private
|
|
35
35
|
*/
|
|
36
|
-
readonly standalonePropertyMetadata: Map<string, PropertyMetadata<
|
|
36
|
+
readonly standalonePropertyMetadata: Map<string, PropertyMetadata<any>>;
|
|
37
37
|
/**
|
|
38
38
|
* Проинициализированные секции конфигов
|
|
39
39
|
* @private
|
|
@@ -62,7 +62,7 @@ export declare class ConfigContext {
|
|
|
62
62
|
* @returns T
|
|
63
63
|
*/
|
|
64
64
|
resolve<T extends Config>(ctor: Constructor<T>): T;
|
|
65
|
-
resolveProperty(token: `STANDALONE_CONFIG_PROPERTY_${string}`):
|
|
65
|
+
resolveProperty(token: `STANDALONE_CONFIG_PROPERTY_${string}`): any;
|
|
66
66
|
private readEnvironment;
|
|
67
67
|
private extractStandaloneProperties;
|
|
68
68
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.context.js","sourceRoot":"","sources":["../../../src/config/context/config.context.ts"],"names":[],"mappings":";;;AASA,yCAAsC;AACtC,2CAA8C;AAK9C,8CAA+D;AAE/D,0CAA+C;AAC/C,mFAA8E;AAC9E,sCAAyC;AAEzC,8CAAqC;AAErC,MAAa,aAAa;IACf,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IAC5B,IAAI,CAAO;IACX,MAAM,CAAS;IAExB;;;;;;;;;;;;;;;OAeG;IACM,0BAA0B,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE1E;;;OAGG;IACc,kBAAkB,GAAG,IAAI,GAAG,EAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.context.js","sourceRoot":"","sources":["../../../src/config/context/config.context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PropertyOptions, PropertyParser } from '../../types';
|
|
2
2
|
/**
|
|
3
3
|
* Declares standalone property. Properties declared in this way,
|
|
4
4
|
* can be injected with @InjectProperty() decorator.
|
|
@@ -14,4 +14,4 @@ import type { ConfigValue, PropertyOptions, PropertyParser } from '../../types';
|
|
|
14
14
|
* default value if exists
|
|
15
15
|
* @returns ClassDecorator
|
|
16
16
|
*/
|
|
17
|
-
export declare const DeclareProperty: <T
|
|
17
|
+
export declare const DeclareProperty: <T>(alias: string, parser: PropertyParser<T>, options: PropertyOptions<T>) => ClassDecorator;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PropertyOptions, PropertyParser } from '../../types';
|
|
2
2
|
export declare const CONFIG_METADATA_KEY = "CONFIG_METADATA";
|
|
3
3
|
/**
|
|
4
4
|
* Sets metadata that will be used to populate the field
|
|
@@ -9,4 +9,4 @@ export declare const CONFIG_METADATA_KEY = "CONFIG_METADATA";
|
|
|
9
9
|
* @param options Additional options (default value, description etc.)
|
|
10
10
|
* @returns PropertyDecorator
|
|
11
11
|
*/
|
|
12
|
-
export declare const Property: <T
|
|
12
|
+
export declare const Property: <T>(key: string, parser: PropertyParser<T>, options: PropertyOptions<T>) => PropertyDecorator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.decorator.js","sourceRoot":"","sources":["../../../../src/config/metadata/decorators/property.decorator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"property.decorator.js","sourceRoot":"","sources":["../../../../src/config/metadata/decorators/property.decorator.ts"],"names":[],"mappings":";;;AAMa,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AAErD;;;;;;;;GAQG;AACI,MAAM,QAAQ,GAAG,CACtB,GAAW,EACX,MAAyB,EACzB,OAA2B,EACR,EAAE,CACrB,UAAU,MAAc,EAAE,WAA4B;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;IAEhC,MAAM,QAAQ,GAAI,OAAO,CAAC,WAAW,CACnC,2BAAmB,EACnB,IAAI,CACe,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAE5C,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG;QACjC,aAAa,EAAE,KAAK;QACpB,GAAG;QACH,MAAM;QACN,GAAG,OAAO;KACX,CAAC;IAEF,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC,CAAC;AArBS,QAAA,QAAQ,YAqBjB;AAEJ,6GAA6G"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { PropertyParser, RawConfigValue
|
|
2
|
-
export declare class ArrayParser<T
|
|
1
|
+
import type { PropertyParser, RawConfigValue } from '../types';
|
|
2
|
+
export declare class ArrayParser<T> implements PropertyParser<T[]> {
|
|
3
3
|
private readonly singleValueParser;
|
|
4
4
|
private readonly options;
|
|
5
5
|
constructor(singleValueParser: PropertyParser<T>, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.parser.js","sourceRoot":"","sources":["../../../src/config/parsers/array.parser.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;
|
|
1
|
+
{"version":3,"file":"array.parser.js","sourceRoot":"","sources":["../../../src/config/parsers/array.parser.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAI5C,MAAa,WAAW;IAEH;IACA;IAFnB,YACmB,iBAAoC,EACpC,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE;QAD5B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,YAAO,GAAP,OAAO,CAAqB;IAC5C,CAAC;IAEJ,IAAI;QACF,OAAO,UAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,WAAW;QACT,OAAO,IAAA,aAAI,EAAA;;SAEN,IAAI,CAAC,OAAO,CAAC,SAAS;QACvB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;KACvC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAqB;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D;QAED,eAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEvB,OAAO,KAAK;aACT,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;CACF;AA7BD,kCA6BC"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Primitive } from '@rsdk/common';
|
|
2
2
|
export type SourceType = 'static' | 'reloadable';
|
|
3
3
|
export type RawConfigValue = Primitive | Primitive[];
|
|
4
|
-
export type SingleConfigValue = string | number | boolean | Timespan | Size | EnumValue | URL;
|
|
5
|
-
export type ConfigValue = SingleConfigValue | SingleConfigValue[];
|
|
6
4
|
export interface Changes {
|
|
7
5
|
createdKeys: string[];
|
|
8
6
|
updatedKeys: string[];
|
|
9
7
|
}
|
|
10
|
-
export interface PropertyOptions<T
|
|
8
|
+
export interface PropertyOptions<T> {
|
|
11
9
|
/**
|
|
12
10
|
* Description of configuration property. Will automatically
|
|
13
11
|
* appear in documentation.
|
|
@@ -18,7 +16,7 @@ export interface PropertyOptions<T extends ConfigValue> {
|
|
|
18
16
|
*/
|
|
19
17
|
defaultValue?: T | undefined;
|
|
20
18
|
}
|
|
21
|
-
export interface PropertyMetadata<T
|
|
19
|
+
export interface PropertyMetadata<T = any> {
|
|
22
20
|
key: string;
|
|
23
21
|
parser: PropertyParser<T>;
|
|
24
22
|
description: string;
|
|
@@ -59,7 +57,7 @@ export interface ParserMetadata {
|
|
|
59
57
|
* mostly during decorator factories (such as @Property()) code is
|
|
60
58
|
* executed. Thus output **can** be used in autodoc
|
|
61
59
|
*/
|
|
62
|
-
export interface PropertyParser<T
|
|
60
|
+
export interface PropertyParser<T = any> {
|
|
63
61
|
type(): string;
|
|
64
62
|
description(): string;
|
|
65
63
|
parse(value: RawConfigValue): T;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Changes,
|
|
1
|
+
import type { Changes, PropertyMetadata, RawConfigValue, RawValues } from './types';
|
|
2
2
|
export declare enum SetResult {
|
|
3
3
|
CREATED = 0,
|
|
4
4
|
UPDATED = 1,
|
|
@@ -14,6 +14,6 @@ export declare class Vars {
|
|
|
14
14
|
constructor(prefix: string);
|
|
15
15
|
set(key: string, value: RawConfigValue): [SetResult, string];
|
|
16
16
|
merge(values: RawValues): Changes;
|
|
17
|
-
extract<T
|
|
17
|
+
extract<T>(propertyMetadata: PropertyMetadata<T>): T | undefined;
|
|
18
18
|
private toUpperSnakeCase;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vars.class.js","sourceRoot":"","sources":["../../src/config/vars.class.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAE5C,6CAAiD;
|
|
1
|
+
{"version":3,"file":"vars.class.js","sourceRoot":"","sources":["../../src/config/vars.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":";;;AACA,yCAAmD;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":";;;AACA,yCAAmD;AAiBnD,SAAS,iBAAiB,CACxB,YAAiB;IAEjB,IAAI,IAAA,oBAAW,EAAC,YAAY,CAAC,EAAE;QAC7B,OAAO,YAAY,CAAC;KACrB;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;QAChC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAEM,MAAM,yBAAyB,GAAG,CACvC,QAA0B,EACI,EAAE;IAChC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAEnD,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YAEnB,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;SAClC;QACD,GAAG,CAAC,IAAA,eAAM,EAAC,QAAQ,EAAE,cAAc,CAAC,IAAI;YACtC,+CAA+C;YAC/C,YAAY,EAAE,iBAAiB,CAAC,YAAY,CAAC;SAC9C,CAAC;KAC6B,CAAC;AACpC,CAAC,CAAC;AAjBW,QAAA,yBAAyB,6BAiBpC;AASK,MAAM,wBAAwB,GAAG,CAAC,EACvC,UAAU,EACV,GAAG,IAAI,EAGR,EAA+B,EAAE,CAAC,CAAC;IAClC,GAAG,IAAI;IACP,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,iCAAyB,CAAC;CACrE,CAAC,CAAC;AATU,QAAA,wBAAwB,4BASlC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/core",
|
|
3
|
-
"version": "2.6.0-next.
|
|
3
|
+
"version": "2.6.0-next.5",
|
|
4
4
|
"description": "Nestjs based microservice chassis",
|
|
5
5
|
"license": "Apache License 2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"reflect-metadata": "^0.1.13",
|
|
41
41
|
"rxjs": "^7.0.0"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "b83cacea4077d8b60845c4858338709b22135307"
|
|
44
44
|
}
|
|
@@ -9,7 +9,6 @@ import { ConfigContext } from './context/config.context';
|
|
|
9
9
|
import type { Config } from './config.abstract';
|
|
10
10
|
import { getPropertyToken } from './metadata';
|
|
11
11
|
import type { ConfigSource } from './sources';
|
|
12
|
-
import type { ConfigValue } from './types';
|
|
13
12
|
|
|
14
13
|
export interface ConfigModuleOptions {
|
|
15
14
|
/**
|
|
@@ -107,9 +106,9 @@ export class PlatformConfigModule {
|
|
|
107
106
|
};
|
|
108
107
|
}
|
|
109
108
|
|
|
110
|
-
private static getPropertyProvider(
|
|
109
|
+
private static getPropertyProvider<T>(
|
|
111
110
|
token: `STANDALONE_CONFIG_PROPERTY_${string}`,
|
|
112
|
-
): FactoryProvider<
|
|
111
|
+
): FactoryProvider<T | undefined> {
|
|
113
112
|
return {
|
|
114
113
|
inject: [
|
|
115
114
|
ConfigContext,
|
|
@@ -119,7 +118,7 @@ export class PlatformConfigModule {
|
|
|
119
118
|
useFactory: async (
|
|
120
119
|
configContext: ConfigContext,
|
|
121
120
|
additionalSourceModuleInitializer?: AdditionalSourceInitializer,
|
|
122
|
-
): Promise<
|
|
121
|
+
): Promise<T | undefined> => {
|
|
123
122
|
await additionalSourceModuleInitializer?.initialize();
|
|
124
123
|
return configContext.resolveProperty(token);
|
|
125
124
|
},
|
|
@@ -18,7 +18,7 @@ import type { PropertyToken } from '../metadata';
|
|
|
18
18
|
import { getPropertyToken } from '../metadata';
|
|
19
19
|
import { ConfigMetadataProvider } from '../metadata/config-metadata.provider';
|
|
20
20
|
import { ReloadEvents } from '../reload';
|
|
21
|
-
import type {
|
|
21
|
+
import type { PropertyMetadata } from '../types';
|
|
22
22
|
import { Vars } from '../vars.class';
|
|
23
23
|
|
|
24
24
|
export class ConfigContext {
|
|
@@ -49,14 +49,12 @@ export class ConfigContext {
|
|
|
49
49
|
* @private
|
|
50
50
|
*/
|
|
51
51
|
private readonly initializedConfigs = new Map<Constructor<Config>, Config>();
|
|
52
|
+
|
|
52
53
|
/**
|
|
53
54
|
* undefined является валидным значением по умолчанию (`defaultValue`)
|
|
54
55
|
* @private
|
|
55
56
|
*/
|
|
56
|
-
private readonly properties = new Map<
|
|
57
|
-
PropertyToken,
|
|
58
|
-
ConfigValue | undefined
|
|
59
|
-
>();
|
|
57
|
+
private readonly properties = new Map<PropertyToken, any>();
|
|
60
58
|
|
|
61
59
|
/**
|
|
62
60
|
* We don't use class as context here because it is undefined if
|
|
@@ -137,9 +135,7 @@ export class ConfigContext {
|
|
|
137
135
|
return instance as T;
|
|
138
136
|
}
|
|
139
137
|
|
|
140
|
-
resolveProperty(
|
|
141
|
-
token: `STANDALONE_CONFIG_PROPERTY_${string}`,
|
|
142
|
-
): ConfigValue | undefined {
|
|
138
|
+
resolveProperty(token: `STANDALONE_CONFIG_PROPERTY_${string}`): any {
|
|
143
139
|
if (this.properties.has(token)) {
|
|
144
140
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
145
141
|
return this.properties.get(token)!;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PropertyOptions, PropertyParser } from '../../types';
|
|
2
2
|
import { ConfigMetadataRegistry } from '../config-metadata.registry';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -16,7 +16,7 @@ import { ConfigMetadataRegistry } from '../config-metadata.registry';
|
|
|
16
16
|
* default value if exists
|
|
17
17
|
* @returns ClassDecorator
|
|
18
18
|
*/
|
|
19
|
-
export const DeclareProperty = <T
|
|
19
|
+
export const DeclareProperty = <T>(
|
|
20
20
|
/**
|
|
21
21
|
* Alias is used not only to declare, but also to inject
|
|
22
22
|
* properties. That's why this string is saved as is, while
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
ConfigValue,
|
|
3
2
|
PropertyOptions,
|
|
4
3
|
PropertyParser,
|
|
5
4
|
SectionMetadata,
|
|
@@ -16,7 +15,7 @@ export const CONFIG_METADATA_KEY = 'CONFIG_METADATA';
|
|
|
16
15
|
* @param options Additional options (default value, description etc.)
|
|
17
16
|
* @returns PropertyDecorator
|
|
18
17
|
*/
|
|
19
|
-
export const Property = <T
|
|
18
|
+
export const Property = <T>(
|
|
20
19
|
key: string,
|
|
21
20
|
parser: PropertyParser<T>,
|
|
22
21
|
options: PropertyOptions<T>,
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import { Assert, text } from '@rsdk/common';
|
|
2
2
|
|
|
3
|
-
import type {
|
|
4
|
-
PropertyParser,
|
|
5
|
-
RawConfigValue,
|
|
6
|
-
SingleConfigValue,
|
|
7
|
-
} from '../types';
|
|
3
|
+
import type { PropertyParser, RawConfigValue } from '../types';
|
|
8
4
|
|
|
9
|
-
export class ArrayParser<T
|
|
10
|
-
implements PropertyParser<T[]>
|
|
11
|
-
{
|
|
5
|
+
export class ArrayParser<T> implements PropertyParser<T[]> {
|
|
12
6
|
constructor(
|
|
13
7
|
private readonly singleValueParser: PropertyParser<T>,
|
|
14
8
|
private readonly options = { separator: ',' },
|
package/src/config/types.ts
CHANGED
|
@@ -1,25 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Primitive } from '@rsdk/common';
|
|
2
2
|
|
|
3
3
|
export type SourceType = 'static' | 'reloadable';
|
|
4
4
|
export type RawConfigValue = Primitive | Primitive[];
|
|
5
5
|
|
|
6
|
-
export type SingleConfigValue =
|
|
7
|
-
| string
|
|
8
|
-
| number
|
|
9
|
-
| boolean
|
|
10
|
-
| Timespan
|
|
11
|
-
| Size
|
|
12
|
-
| EnumValue
|
|
13
|
-
| URL;
|
|
14
|
-
|
|
15
|
-
export type ConfigValue = SingleConfigValue | SingleConfigValue[];
|
|
16
|
-
|
|
17
6
|
export interface Changes {
|
|
18
7
|
createdKeys: string[];
|
|
19
8
|
updatedKeys: string[];
|
|
20
9
|
}
|
|
21
10
|
|
|
22
|
-
export interface PropertyOptions<T
|
|
11
|
+
export interface PropertyOptions<T> {
|
|
23
12
|
/**
|
|
24
13
|
* Description of configuration property. Will automatically
|
|
25
14
|
* appear in documentation.
|
|
@@ -32,7 +21,7 @@ export interface PropertyOptions<T extends ConfigValue> {
|
|
|
32
21
|
defaultValue?: T | undefined;
|
|
33
22
|
}
|
|
34
23
|
|
|
35
|
-
export interface PropertyMetadata<T
|
|
24
|
+
export interface PropertyMetadata<T = any> {
|
|
36
25
|
key: string;
|
|
37
26
|
parser: PropertyParser<T>;
|
|
38
27
|
description: string;
|
|
@@ -80,7 +69,7 @@ export interface ParserMetadata {
|
|
|
80
69
|
* mostly during decorator factories (such as @Property()) code is
|
|
81
70
|
* executed. Thus output **can** be used in autodoc
|
|
82
71
|
*/
|
|
83
|
-
export interface PropertyParser<T
|
|
72
|
+
export interface PropertyParser<T = any> {
|
|
84
73
|
type(): string;
|
|
85
74
|
description(): string;
|
|
86
75
|
parse(value: RawConfigValue): T;
|
package/src/config/vars.class.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { cloneDeep, isEqual } from 'lodash';
|
|
|
3
3
|
import { PropertyException } from './exceptions';
|
|
4
4
|
import type {
|
|
5
5
|
Changes,
|
|
6
|
-
ConfigValue,
|
|
7
6
|
PropertyMetadata,
|
|
8
7
|
RawConfigValue,
|
|
9
8
|
RawValues,
|
|
@@ -69,9 +68,7 @@ export class Vars {
|
|
|
69
68
|
return { createdKeys, updatedKeys };
|
|
70
69
|
}
|
|
71
70
|
|
|
72
|
-
extract<T
|
|
73
|
-
propertyMetadata: PropertyMetadata<T>,
|
|
74
|
-
): T | undefined {
|
|
71
|
+
extract<T>(propertyMetadata: PropertyMetadata<T>): T | undefined {
|
|
75
72
|
const { key, parser, defaultValue } = propertyMetadata;
|
|
76
73
|
const preparedKey = this.toUpperSnakeCase(key);
|
|
77
74
|
|
package/src/types/metadata.ts
CHANGED
|
@@ -2,7 +2,6 @@ import type { Primitive } from '@rsdk/common';
|
|
|
2
2
|
import { hasKey, isPrimitive } from '@rsdk/common';
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
|
-
ConfigValue,
|
|
6
5
|
ParserMetadata,
|
|
7
6
|
PropertyMetadata,
|
|
8
7
|
SectionMetadata,
|
|
@@ -18,7 +17,7 @@ export type SerializablePropertyMetadata = Omit<
|
|
|
18
17
|
};
|
|
19
18
|
|
|
20
19
|
function parseDefaultValue(
|
|
21
|
-
defaultValue:
|
|
20
|
+
defaultValue: any,
|
|
22
21
|
): Primitive | Primitive[] | undefined {
|
|
23
22
|
if (isPrimitive(defaultValue)) {
|
|
24
23
|
return defaultValue;
|