@dipscope/type-manager 4.0.3 → 4.1.1

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.
Files changed (125) hide show
  1. package/CHANGELOG.md +197 -184
  2. package/{LICENSE.txt → LICENSE.md} +201 -201
  3. package/README.md +2037 -2005
  4. package/alias.d.ts +10 -10
  5. package/core/alias.d.ts +6 -6
  6. package/core/custom-data.d.ts +6 -6
  7. package/core/default-value-resolver.d.ts +7 -0
  8. package/core/default-value.d.ts +7 -0
  9. package/core/discriminant.d.ts +8 -8
  10. package/core/discriminator.d.ts +6 -6
  11. package/core/factory.d.ts +18 -18
  12. package/core/fn.d.ts +316 -316
  13. package/core/generic-argument.d.ts +7 -7
  14. package/core/generic-metadata.d.ts +7 -7
  15. package/core/index.d.ts +44 -42
  16. package/core/index.js +2 -2
  17. package/core/index.js.map +1 -0
  18. package/core/inject-index.d.ts +6 -6
  19. package/core/inject-metadata.d.ts +72 -72
  20. package/core/inject-options.d.ts +22 -22
  21. package/core/injector.d.ts +16 -16
  22. package/core/log-level.d.ts +11 -11
  23. package/core/log.d.ts +65 -65
  24. package/core/metadata.d.ts +42 -42
  25. package/core/naming-convention.d.ts +15 -15
  26. package/core/property-metadata.d.ts +178 -172
  27. package/core/property-name.d.ts +6 -6
  28. package/core/property-options.d.ts +100 -92
  29. package/core/reference-callback.d.ts +7 -7
  30. package/core/reference-handler.d.ts +32 -32
  31. package/core/reference-key.d.ts +6 -6
  32. package/core/reference-value-initializer.d.ts +8 -8
  33. package/core/reference-value-resolver.d.ts +8 -8
  34. package/core/reference-value.d.ts +6 -6
  35. package/core/serializer-context-options.d.ts +63 -63
  36. package/core/serializer-context.d.ts +296 -290
  37. package/core/serializer.d.ts +27 -27
  38. package/core/type-abstraction.d.ts +8 -8
  39. package/core/type-argument.d.ts +9 -9
  40. package/core/type-context-entry.d.ts +36 -36
  41. package/core/type-context.d.ts +58 -58
  42. package/core/type-ctor.d.ts +6 -6
  43. package/core/type-fn.d.ts +8 -8
  44. package/core/type-like.d.ts +7 -7
  45. package/core/type-metadata-resolver.d.ts +8 -8
  46. package/core/type-metadata-symbol.d.ts +6 -6
  47. package/core/type-metadata.d.ts +304 -298
  48. package/core/type-name.d.ts +6 -6
  49. package/core/type-options-base.d.ts +100 -92
  50. package/core/type-options.d.ts +53 -53
  51. package/core/type-resolver.d.ts +7 -7
  52. package/custom-data.d.ts +11 -11
  53. package/default-value.d.ts +11 -10
  54. package/deserializable.d.ts +11 -11
  55. package/deserialized-default-value.d.ts +11 -0
  56. package/discriminant.d.ts +11 -11
  57. package/discriminator.d.ts +11 -11
  58. package/factories/index.d.ts +1 -1
  59. package/factories/index.js +2 -2
  60. package/factories/index.js.map +1 -0
  61. package/factories/type-factory.d.ts +19 -19
  62. package/factory.d.ts +11 -11
  63. package/index.d.ts +24 -22
  64. package/index.js +2 -2
  65. package/index.js.map +1 -0
  66. package/inject.d.ts +10 -10
  67. package/injectable.d.ts +10 -10
  68. package/injector.d.ts +11 -11
  69. package/injectors/index.d.ts +1 -1
  70. package/injectors/index.js +2 -2
  71. package/injectors/index.js.map +1 -0
  72. package/injectors/singleton-injector.d.ts +31 -31
  73. package/naming-convention.d.ts +11 -11
  74. package/naming-conventions/camel-case-naming-convention.d.ts +26 -26
  75. package/naming-conventions/flat-case-naming-convention.d.ts +25 -25
  76. package/naming-conventions/flat-upper-case-naming-convention.d.ts +25 -25
  77. package/naming-conventions/index.d.ts +8 -8
  78. package/naming-conventions/index.js +2 -2
  79. package/naming-conventions/index.js.map +1 -0
  80. package/naming-conventions/kebab-case-naming-convention.d.ts +26 -26
  81. package/naming-conventions/kebab-upper-case-naming-convention.d.ts +26 -26
  82. package/naming-conventions/pascal-case-naming-convention.d.ts +26 -26
  83. package/naming-conventions/snake-case-naming-convention.d.ts +26 -26
  84. package/naming-conventions/snake-upper-case-naming-convention.d.ts +26 -26
  85. package/package.json +48 -48
  86. package/preserve-discriminator.d.ts +10 -10
  87. package/property.d.ts +12 -12
  88. package/reference-handler.d.ts +11 -11
  89. package/reference-handlers/direct-reference-handler.d.ts +33 -33
  90. package/reference-handlers/index.d.ts +3 -3
  91. package/reference-handlers/index.js +2 -2
  92. package/reference-handlers/index.js.map +1 -0
  93. package/reference-handlers/lead-reference-handler.d.ts +34 -34
  94. package/reference-handlers/path-reference-handler.d.ts +56 -56
  95. package/serializable.d.ts +11 -11
  96. package/serialized-default-value.d.ts +11 -0
  97. package/serializer.d.ts +11 -11
  98. package/serializers/array-buffer-serializer.d.ts +28 -28
  99. package/serializers/array-serializer.d.ts +28 -28
  100. package/serializers/boolean-serializer.d.ts +37 -37
  101. package/serializers/data-view-serializer.d.ts +28 -28
  102. package/serializers/date-serializer.d.ts +28 -28
  103. package/serializers/float-32-array-serializer.d.ts +28 -28
  104. package/serializers/float-64-array-serializer.d.ts +28 -28
  105. package/serializers/index.d.ts +19 -19
  106. package/serializers/index.js +2 -2
  107. package/serializers/index.js.map +1 -0
  108. package/serializers/int-16-array-serializer.d.ts +28 -28
  109. package/serializers/int-32-array-serializer.d.ts +28 -28
  110. package/serializers/int-8-array-serializer.d.ts +28 -28
  111. package/serializers/map-serializer.d.ts +28 -28
  112. package/serializers/number-serializer.d.ts +37 -37
  113. package/serializers/set-serializer.d.ts +28 -28
  114. package/serializers/string-serializer.d.ts +37 -37
  115. package/serializers/type-serializer.d.ts +28 -28
  116. package/serializers/uint-16-array-serializer.d.ts +28 -28
  117. package/serializers/uint-32-array-serializer.d.ts +28 -28
  118. package/serializers/uint-8-array-serializer.d.ts +28 -28
  119. package/serializers/uint-8-clamped-array-serializer.d.ts +28 -28
  120. package/type-and-property.d.ts +12 -12
  121. package/type-manager-options.d.ts +24 -24
  122. package/type-manager.d.ts +331 -331
  123. package/type.d.ts +9 -9
  124. package/use-default-value.d.ts +10 -10
  125. package/use-implicit-conversion.d.ts +10 -10
@@ -1,72 +1,72 @@
1
- import { InjectIndex } from './inject-index';
2
- import { InjectOptions } from './inject-options';
3
- import { Metadata } from './metadata';
4
- import { TypeFn } from './type-fn';
5
- import { TypeMetadata } from './type-metadata';
6
- /**
7
- * Main class used to describe an injection.
8
- *
9
- * @type {InjectMetadata<TDeclaringType, TType>}
10
- */
11
- export declare class InjectMetadata<TDeclaringType, TType> extends Metadata {
12
- /**
13
- * Type metadata to which inject metadata belongs to.
14
- *
15
- * @type {TypeMetadata<TDeclaringType>}
16
- */
17
- readonly declaringTypeMetadata: TypeMetadata<TDeclaringType>;
18
- /**
19
- * Type function defined using reflect metadata.
20
- *
21
- * Used as a fallback when type function is not defined.
22
- *
23
- * @type {TypeFn<TType>}
24
- */
25
- readonly reflectTypeFn: TypeFn<TType>;
26
- /**
27
- * Index of injection within a type constructor function.
28
- *
29
- * @type {InjectIndex}
30
- */
31
- readonly injectIndex: InjectIndex;
32
- /**
33
- * Inject options.
34
- *
35
- * @type {InjectOptions<TType>}
36
- */
37
- readonly injectOptions: InjectOptions<TType>;
38
- /**
39
- * Constructor.
40
- *
41
- * @param {TypeMetadata<TDeclaringType>} declaringTypeMetadata Type metadata to which inject metadata belongs to.
42
- * @param {InjectIndex} injectIndex Index of injection within a type constructor function.
43
- * @param {InjectOptions<TType>} injectOptions Inject options.
44
- */
45
- constructor(declaringTypeMetadata: TypeMetadata<TDeclaringType>, injectIndex: InjectIndex, injectOptions: InjectOptions<TType>);
46
- /**
47
- * Gets key.
48
- *
49
- * @returns {string|undefined} Key or undefined.
50
- */
51
- get key(): string | undefined;
52
- /**
53
- * Gets type function.
54
- *
55
- * @returns {TypeFn<TType>|undefined} Type constructor or undefined.
56
- */
57
- get typeFn(): TypeFn<TType> | undefined;
58
- /**
59
- * Gets inject type metadata.
60
- *
61
- * @returns {TypeMetadata<TType>} Type metadata.
62
- */
63
- get typeMetadata(): TypeMetadata<TType>;
64
- /**
65
- * Configures inject metadata based on provided options.
66
- *
67
- * @param {InjectOptions<TType>} injectOptions Inject options.
68
- *
69
- * @returns {InjectMetadata<TDeclaringType, TType>} Instance of inject metadata.
70
- */
71
- configure(injectOptions: InjectOptions<TType>): InjectMetadata<TDeclaringType, TType>;
72
- }
1
+ import { InjectIndex } from './inject-index';
2
+ import { InjectOptions } from './inject-options';
3
+ import { Metadata } from './metadata';
4
+ import { TypeFn } from './type-fn';
5
+ import { TypeMetadata } from './type-metadata';
6
+ /**
7
+ * Main class used to describe an injection.
8
+ *
9
+ * @type {InjectMetadata<TDeclaringType, TType>}
10
+ */
11
+ export declare class InjectMetadata<TDeclaringType, TType> extends Metadata {
12
+ /**
13
+ * Type metadata to which inject metadata belongs to.
14
+ *
15
+ * @type {TypeMetadata<TDeclaringType>}
16
+ */
17
+ readonly declaringTypeMetadata: TypeMetadata<TDeclaringType>;
18
+ /**
19
+ * Type function defined using reflect metadata.
20
+ *
21
+ * Used as a fallback when type function is not defined.
22
+ *
23
+ * @type {TypeFn<TType>}
24
+ */
25
+ readonly reflectTypeFn: TypeFn<TType>;
26
+ /**
27
+ * Index of injection within a type constructor function.
28
+ *
29
+ * @type {InjectIndex}
30
+ */
31
+ readonly injectIndex: InjectIndex;
32
+ /**
33
+ * Inject options.
34
+ *
35
+ * @type {InjectOptions<TType>}
36
+ */
37
+ readonly injectOptions: InjectOptions<TType>;
38
+ /**
39
+ * Constructor.
40
+ *
41
+ * @param {TypeMetadata<TDeclaringType>} declaringTypeMetadata Type metadata to which inject metadata belongs to.
42
+ * @param {InjectIndex} injectIndex Index of injection within a type constructor function.
43
+ * @param {InjectOptions<TType>} injectOptions Inject options.
44
+ */
45
+ constructor(declaringTypeMetadata: TypeMetadata<TDeclaringType>, injectIndex: InjectIndex, injectOptions: InjectOptions<TType>);
46
+ /**
47
+ * Gets key.
48
+ *
49
+ * @returns {string|undefined} Key or undefined.
50
+ */
51
+ get key(): string | undefined;
52
+ /**
53
+ * Gets type function.
54
+ *
55
+ * @returns {TypeFn<TType>|undefined} Type constructor or undefined.
56
+ */
57
+ get typeFn(): TypeFn<TType> | undefined;
58
+ /**
59
+ * Gets inject type metadata.
60
+ *
61
+ * @returns {TypeMetadata<TType>} Type metadata.
62
+ */
63
+ get typeMetadata(): TypeMetadata<TType>;
64
+ /**
65
+ * Configures inject metadata based on provided options.
66
+ *
67
+ * @param {InjectOptions<TType>} injectOptions Inject options.
68
+ *
69
+ * @returns {InjectMetadata<TDeclaringType, TType>} Instance of inject metadata.
70
+ */
71
+ configure(injectOptions: InjectOptions<TType>): InjectMetadata<TDeclaringType, TType>;
72
+ }
@@ -1,22 +1,22 @@
1
- import { TypeFn } from './type-fn';
2
- /**
3
- * Inject options.
4
- *
5
- * @type {InjectOptions<TType>}
6
- */
7
- export interface InjectOptions<TType> {
8
- /**
9
- * Parameter key to inject within a type context. If specified then
10
- * type function will be ignored.
11
- *
12
- * @type {string}
13
- */
14
- key?: string;
15
- /**
16
- * Type of injection. Used if key is not specified. Will be resolved using
17
- * type injector.
18
- *
19
- * @type {TypeFn<TType>}
20
- */
21
- typeFn?: TypeFn<TType>;
22
- }
1
+ import { TypeFn } from './type-fn';
2
+ /**
3
+ * Inject options.
4
+ *
5
+ * @type {InjectOptions<TType>}
6
+ */
7
+ export interface InjectOptions<TType> {
8
+ /**
9
+ * Parameter key to inject within a type context. If specified then
10
+ * type function will be ignored.
11
+ *
12
+ * @type {string}
13
+ */
14
+ key?: string;
15
+ /**
16
+ * Type of injection. Used if key is not specified. Will be resolved using
17
+ * type injector.
18
+ *
19
+ * @type {TypeFn<TType>}
20
+ */
21
+ typeFn?: TypeFn<TType>;
22
+ }
@@ -1,16 +1,16 @@
1
- import { TypeMetadata } from './type-metadata';
2
- /**
3
- * Injector used to resolve dependent types.
4
- *
5
- * @type {Injector}
6
- */
7
- export interface Injector {
8
- /**
9
- * Method to get instance described by type metadata.
10
- *
11
- * @param {TypeMetadata<TType>} typeMetadata Type metadata.
12
- *
13
- * @returns {TType|undefined} Instance of type described by type metadata or undefined.
14
- */
15
- get<TType>(typeMetadata: TypeMetadata<TType>): TType | undefined;
16
- }
1
+ import { TypeMetadata } from './type-metadata';
2
+ /**
3
+ * Injector used to resolve dependent types.
4
+ *
5
+ * @type {Injector}
6
+ */
7
+ export interface Injector {
8
+ /**
9
+ * Method to get instance described by type metadata.
10
+ *
11
+ * @param {TypeMetadata<TType>} typeMetadata Type metadata.
12
+ *
13
+ * @returns {TType|undefined} Instance of type described by type metadata or undefined.
14
+ */
15
+ get<TType>(typeMetadata: TypeMetadata<TType>): TType | undefined;
16
+ }
@@ -1,11 +1,11 @@
1
- /**
2
- * Log level.
3
- *
4
- * @type {LogLevel}
5
- */
6
- export declare enum LogLevel {
7
- Info = 0,
8
- Warn = 1,
9
- Error = 2,
10
- None = 3
11
- }
1
+ /**
2
+ * Log level.
3
+ *
4
+ * @type {LogLevel}
5
+ */
6
+ export declare enum LogLevel {
7
+ Info = 0,
8
+ Warn = 1,
9
+ Error = 2,
10
+ None = 3
11
+ }
package/core/log.d.ts CHANGED
@@ -1,65 +1,65 @@
1
- import { LogLevel } from './log-level';
2
- /**
3
- * Main logger class.
4
- *
5
- * @type {Log}
6
- */
7
- export declare class Log {
8
- /**
9
- * Log level defines what kind of messages should be displayed in console.
10
- *
11
- * @type {LogLevel}
12
- */
13
- logLevel: LogLevel;
14
- /**
15
- * Constructor.
16
- *
17
- * @param {LogLevel} logLevel Log level.
18
- */
19
- constructor(logLevel: LogLevel);
20
- /**
21
- * Info log level is enabled?
22
- *
23
- * @type {boolean}
24
- */
25
- get infoEnabled(): boolean;
26
- /**
27
- * Warn log level is enabled?
28
- *
29
- * @type {boolean}
30
- */
31
- get warnEnabled(): boolean;
32
- /**
33
- * Error log level is enabled?
34
- *
35
- * @type {boolean}
36
- */
37
- get errorEnabled(): boolean;
38
- /**
39
- * Displays info message.
40
- *
41
- * @param {string} message Message to display.
42
- * @param {Array<any>} optionalParams Optional data related to a message.
43
- *
44
- * @returns {void}
45
- */
46
- info(message: string, ...optionalParams: Array<any>): void;
47
- /**
48
- * Displays warn message.
49
- *
50
- * @param {string} message Message to display.
51
- * @param {Array<any>} optionalParams Optional data related to a message.
52
- *
53
- * @returns {void}
54
- */
55
- warn(message: any, ...optionalParams: Array<any>): void;
56
- /**
57
- * Displays error message.
58
- *
59
- * @param {string} message Message to display.
60
- * @param {Array<any>} optionalParams Optional data related to a message.
61
- *
62
- * @returns {void}
63
- */
64
- error(message: string, ...optionalParams: Array<any>): void;
65
- }
1
+ import { LogLevel } from './log-level';
2
+ /**
3
+ * Main logger class.
4
+ *
5
+ * @type {Log}
6
+ */
7
+ export declare class Log {
8
+ /**
9
+ * Log level defines what kind of messages should be displayed in console.
10
+ *
11
+ * @type {LogLevel}
12
+ */
13
+ logLevel: LogLevel;
14
+ /**
15
+ * Constructor.
16
+ *
17
+ * @param {LogLevel} logLevel Log level.
18
+ */
19
+ constructor(logLevel: LogLevel);
20
+ /**
21
+ * Info log level is enabled?
22
+ *
23
+ * @type {boolean}
24
+ */
25
+ get infoEnabled(): boolean;
26
+ /**
27
+ * Warn log level is enabled?
28
+ *
29
+ * @type {boolean}
30
+ */
31
+ get warnEnabled(): boolean;
32
+ /**
33
+ * Error log level is enabled?
34
+ *
35
+ * @type {boolean}
36
+ */
37
+ get errorEnabled(): boolean;
38
+ /**
39
+ * Displays info message.
40
+ *
41
+ * @param {string} message Message to display.
42
+ * @param {Array<any>} optionalParams Optional data related to a message.
43
+ *
44
+ * @returns {void}
45
+ */
46
+ info(message: string, ...optionalParams: Array<any>): void;
47
+ /**
48
+ * Displays warn message.
49
+ *
50
+ * @param {string} message Message to display.
51
+ * @param {Array<any>} optionalParams Optional data related to a message.
52
+ *
53
+ * @returns {void}
54
+ */
55
+ warn(message: any, ...optionalParams: Array<any>): void;
56
+ /**
57
+ * Displays error message.
58
+ *
59
+ * @param {string} message Message to display.
60
+ * @param {Array<any>} optionalParams Optional data related to a message.
61
+ *
62
+ * @returns {void}
63
+ */
64
+ error(message: string, ...optionalParams: Array<any>): void;
65
+ }
@@ -1,42 +1,42 @@
1
- import { GenericArgument } from './generic-argument';
2
- import { GenericMetadata } from './generic-metadata';
3
- import { TypeArgument } from './type-argument';
4
- import { TypeMetadata } from './type-metadata';
5
- import { TypeMetadataResolver } from './type-metadata-resolver';
6
- /**
7
- * Metadata class.
8
- *
9
- * Encapsulates common methods and properties which can be used by all types of metadata.
10
- *
11
- * @type {Metadata}
12
- */
13
- export declare class Metadata {
14
- /**
15
- * Type metadata resolver.
16
- *
17
- * @type {TypeMetadataResolver<any>}
18
- */
19
- readonly typeMetadataResolver: TypeMetadataResolver<any>;
20
- /**
21
- * Constructor.
22
- *
23
- * @param {TypeMetadataResolver<any>} typeMetadataResolver Type metadata resolver.
24
- */
25
- constructor(typeMetadataResolver: TypeMetadataResolver<any>);
26
- /**
27
- * Defines type metadata based on provided type argument.
28
- *
29
- * @param {TypeArgument<any>} typeArgument Type argument.
30
- *
31
- * @returns {TypeMetadata<any>} Type metadata.
32
- */
33
- protected defineTypeMetadata(typeArgument: TypeArgument<any>): TypeMetadata<any>;
34
- /**
35
- * Defines generic metadatas based on provided generic arguments.
36
- *
37
- * @param {Array<GenericArgument<any>>} genericArguments Generic arguments.
38
- *
39
- * @returns {Array<GenericMetadata<any>>} Generics metadatas.
40
- */
41
- protected defineGenericMetadatas(genericArguments: Array<GenericArgument<any>>): Array<GenericMetadata<any>>;
42
- }
1
+ import { GenericArgument } from './generic-argument';
2
+ import { GenericMetadata } from './generic-metadata';
3
+ import { TypeArgument } from './type-argument';
4
+ import { TypeMetadata } from './type-metadata';
5
+ import { TypeMetadataResolver } from './type-metadata-resolver';
6
+ /**
7
+ * Metadata class.
8
+ *
9
+ * Encapsulates common methods and properties which can be used by all types of metadata.
10
+ *
11
+ * @type {Metadata}
12
+ */
13
+ export declare class Metadata {
14
+ /**
15
+ * Type metadata resolver.
16
+ *
17
+ * @type {TypeMetadataResolver<any>}
18
+ */
19
+ readonly typeMetadataResolver: TypeMetadataResolver<any>;
20
+ /**
21
+ * Constructor.
22
+ *
23
+ * @param {TypeMetadataResolver<any>} typeMetadataResolver Type metadata resolver.
24
+ */
25
+ constructor(typeMetadataResolver: TypeMetadataResolver<any>);
26
+ /**
27
+ * Defines type metadata based on provided type argument.
28
+ *
29
+ * @param {TypeArgument<any>} typeArgument Type argument.
30
+ *
31
+ * @returns {TypeMetadata<any>} Type metadata.
32
+ */
33
+ protected defineTypeMetadata(typeArgument: TypeArgument<any>): TypeMetadata<any>;
34
+ /**
35
+ * Defines generic metadatas based on provided generic arguments.
36
+ *
37
+ * @param {Array<GenericArgument<any>>} genericArguments Generic arguments.
38
+ *
39
+ * @returns {Array<GenericMetadata<any>>} Generics metadatas.
40
+ */
41
+ protected defineGenericMetadatas(genericArguments: Array<GenericArgument<any>>): Array<GenericMetadata<any>>;
42
+ }
@@ -1,15 +1,15 @@
1
- /**
2
- * Represents naming convention.
3
- *
4
- * @type {NamingConvention}
5
- */
6
- export interface NamingConvention {
7
- /**
8
- * Converts name from provided to target one.
9
- *
10
- * @param {string} name Name.
11
- *
12
- * @returns {string} Converted name.
13
- */
14
- convert(name: string): string;
15
- }
1
+ /**
2
+ * Represents naming convention.
3
+ *
4
+ * @type {NamingConvention}
5
+ */
6
+ export interface NamingConvention {
7
+ /**
8
+ * Converts name from provided to target one.
9
+ *
10
+ * @param {string} name Name.
11
+ *
12
+ * @returns {string} Converted name.
13
+ */
14
+ convert(name: string): string;
15
+ }