@dipscope/type-manager 4.1.0 → 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 -197
  2. package/{LICENSE.txt → LICENSE.md} +201 -201
  3. package/README.md +2037 -2020
  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 -7
  8. package/core/default-value.d.ts +7 -7
  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 -44
  16. package/core/index.js +1 -1
  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 -178
  27. package/core/property-name.d.ts +6 -6
  28. package/core/property-options.d.ts +100 -100
  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 -296
  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 -304
  48. package/core/type-name.d.ts +6 -6
  49. package/core/type-options-base.d.ts +100 -100
  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 -11
  54. package/deserializable.d.ts +11 -11
  55. package/deserialized-default-value.d.ts +11 -11
  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 +1 -1
  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 -24
  64. package/index.js +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 -11
  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 +1 -1
  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,296 +1,296 @@
1
- import { CustomData } from './custom-data';
2
- import { Discriminant } from './discriminant';
3
- import { Discriminator } from './discriminator';
4
- import { Factory } from './factory';
5
- import { GenericArgument } from './generic-argument';
6
- import { GenericMetadata } from './generic-metadata';
7
- import { Injector } from './injector';
8
- import { Log } from './log';
9
- import { Metadata } from './metadata';
10
- import { NamingConvention } from './naming-convention';
11
- import { PropertyMetadata } from './property-metadata';
12
- import { ReferenceCallback } from './reference-callback';
13
- import { ReferenceHandler } from './reference-handler';
14
- import { ReferenceKey } from './reference-key';
15
- import { ReferenceValue } from './reference-value';
16
- import { ReferenceValueInitializer } from './reference-value-initializer';
17
- import { ReferenceValueResolver } from './reference-value-resolver';
18
- import { Serializer } from './serializer';
19
- import { SerializerContextOptions } from './serializer-context-options';
20
- import { TypeFn } from './type-fn';
21
- import { TypeLike } from './type-like';
22
- import { TypeMetadata } from './type-metadata';
23
- /**
24
- * Serializer context of a certain type.
25
- *
26
- * @type {SerializerContext<TType>}
27
- */
28
- export declare class SerializerContext<TType> extends Metadata {
29
- /**
30
- * Serializer context options.
31
- *
32
- * @type {SerializerContext<TType>}
33
- */
34
- readonly serializerContextOptions: SerializerContextOptions<TType>;
35
- /**
36
- * Constructor.
37
- *
38
- * @param {SerializerContextOptions<TType>} serializerContextOptions Serializer context options.
39
- */
40
- constructor(serializerContextOptions: SerializerContextOptions<TType>);
41
- /**
42
- * Gets serializer context root.
43
- *
44
- * @returns {any} Serializer context root.
45
- */
46
- get $(): any;
47
- /**
48
- * Gets custom data.
49
- *
50
- * @returns {CustomData} Custom data.
51
- */
52
- get customData(): CustomData;
53
- /**
54
- * Gets serialized default value.
55
- *
56
- * @returns {any|undefined} Resolved serialized default value or undefined.
57
- */
58
- get serializedDefaultValue(): any | undefined;
59
- /**
60
- * Gets deserialized default value.
61
- *
62
- * @returns {any|undefined} Resolved deserialized default value or undefined.
63
- */
64
- get deserializedDefaultValue(): any | undefined;
65
- /**
66
- * Gets discriminant.
67
- *
68
- * @returns {Discriminant} Discriminant.
69
- */
70
- get discriminant(): Discriminant;
71
- /**
72
- * Gets discriminant map.
73
- *
74
- * @returns {Map<TypeFn<any>, Discriminant>} Discriminant map.
75
- */
76
- get discriminantMap(): Map<TypeFn<any>, Discriminant>;
77
- /**
78
- * Gets discriminator.
79
- *
80
- * @returns {Discriminator} Discriminator.
81
- */
82
- get discriminator(): Discriminator;
83
- /**
84
- * Gets factory.
85
- *
86
- * @returns {Factory} Factory.
87
- */
88
- get factory(): Factory;
89
- /**
90
- * Gets generic arguments.
91
- *
92
- * @returns {Array<GenericArgument<any>>|undefined} Generic arguments or undefined.
93
- */
94
- get genericArguments(): Array<GenericArgument<any>> | undefined;
95
- /**
96
- * Gets generic metadatas.
97
- *
98
- * @returns {Array<GenericMetadata<any>>|undefined} Generic metadatas.
99
- */
100
- get genericMetadatas(): Array<GenericMetadata<any>> | undefined;
101
- /**
102
- * Gets injector.
103
- *
104
- * @returns {Injector} Injector
105
- */
106
- get injector(): Injector;
107
- /**
108
- * Gets log.
109
- *
110
- * @returns {Log} Log instance.
111
- */
112
- get log(): Log;
113
- /**
114
- * Gets context name.
115
- *
116
- * @returns {string} Context name.
117
- */
118
- get name(): string;
119
- /**
120
- * Gets naming convention.
121
- *
122
- * @returns {NamingConvention|undefined} Naming convention or undefined.
123
- */
124
- get namingConvention(): NamingConvention | undefined;
125
- /**
126
- * Gets JSONPath from serializer context root.
127
- *
128
- * @returns {string} Path.
129
- */
130
- get path(): string;
131
- /**
132
- * Gets indicator if context is polymorphic.
133
- *
134
- * @returns {boolean} True when context is polymorphic. False otherwise.
135
- */
136
- get polymorphic(): boolean;
137
- /**
138
- * Gets property metadata.
139
- *
140
- * @returns {PropertyMetadata<any, TType>|undefined} Property metadata or undefined.
141
- */
142
- get propertyMetadata(): PropertyMetadata<any, TType> | undefined;
143
- /**
144
- * Gets indicator if discriminator should be preserved.
145
- *
146
- * @returns {boolean} True when discriminator should be preserved. False otherwise.
147
- */
148
- get preserveDiscriminator(): boolean;
149
- /**
150
- * Gets reference handler.
151
- *
152
- * @returns {ReferenceHandler} Reference handler.
153
- */
154
- get referenceHandler(): ReferenceHandler;
155
- /**
156
- * Gets reference callback map.
157
- *
158
- * @returns {WeakMap<ReferenceKey, Array<ReferenceCallback>>} Reference callback map.
159
- */
160
- get referenceCallbackMap(): WeakMap<ReferenceKey, Array<ReferenceCallback>>;
161
- /**
162
- * Gets reference map.
163
- *
164
- * @returns {WeakMap<ReferenceKey, ReferenceValue>} Reference map.
165
- */
166
- get referenceMap(): WeakMap<ReferenceKey, ReferenceValue>;
167
- /**
168
- * Gets serializer.
169
- *
170
- * @returns {Serializer<TType>} Serializer.
171
- */
172
- get serializer(): Serializer<TType>;
173
- /**
174
- * Gets type metadata.
175
- *
176
- * @returns {TypeMetadata<TType>} Type metadata.
177
- */
178
- get typeMetadata(): TypeMetadata<TType>;
179
- /**
180
- * Gets indicator if default value should be used.
181
- *
182
- * @returns {boolean} True when type should use default value. False otherwise.
183
- */
184
- get useDefaultValue(): boolean;
185
- /**
186
- * Gets indicator if implicit conversion should be used.
187
- *
188
- * @returns {boolean} True when type should use implicit conversion. False otherwise.
189
- */
190
- get useImplicitConversion(): boolean;
191
- /**
192
- * Serializes provided value using context.
193
- *
194
- * @param {TypeLike<TType>} x Some value.
195
- *
196
- * @returns {TypeLike<any>} Value serialized by context.
197
- */
198
- serialize(x: TypeLike<TType>): TypeLike<any>;
199
- /**
200
- * Deserializes provided value using context.
201
- *
202
- * @param {TypeLike<any>} x Some value.
203
- *
204
- * @returns {TypeLike<TType>} Value deserialized by context.
205
- */
206
- deserialize(x: TypeLike<any>): TypeLike<TType>;
207
- /**
208
- * Defines reference.
209
- *
210
- * May be called during serialization to define reference.
211
- *
212
- * @param {ReferenceKey} referenceKey Reference key.
213
- * @param {ReferenceValueInitializer} referenceValueInitializer Reference value initializer.
214
- *
215
- * @returns {ReferenceValue|ReferenceValueResolver} Reference value or reference value resolver when circular dependency is detected.
216
- */
217
- defineReference(referenceKey: ReferenceKey, referenceValueInitializer: ReferenceValueInitializer): ReferenceValue | ReferenceValueResolver;
218
- /**
219
- * Restores reference.
220
- *
221
- * May be called during deserialization to restore reference.
222
- *
223
- * @param {ReferenceKey} referenceKey Reference key.
224
- * @param {ReferenceValueInitializer} referenceValueInitializer Reference value initializer.
225
- *
226
- * @returns {ReferenceValue|ReferenceValueResolver} Reference value or reference value resolver when circular dependency is detected.
227
- */
228
- restoreReference(referenceKey: ReferenceKey, referenceValueInitializer: ReferenceValueInitializer): ReferenceValue | ReferenceValueResolver;
229
- /**
230
- * Pushes callback for provided reference key.
231
- *
232
- * Called by serializers during handling of circular references.
233
- *
234
- * @param {ReferenceKey} referenceKey Reference key.
235
- * @param {ReferenceCallback} referenceCallback Reference callback.
236
- *
237
- * @returns {void}
238
- */
239
- pushReferenceCallback(referenceKey: ReferenceKey, referenceCallback: ReferenceCallback): void;
240
- /**
241
- * Resolves callbacks for provided reference key.
242
- *
243
- * Called by reference handlers when circular references can be resolved.
244
- *
245
- * @param {ReferenceKey} referenceKey Reference key.
246
- *
247
- * @returns {void}
248
- */
249
- resolveReferenceCallbacks(referenceKey: ReferenceKey): void;
250
- /**
251
- * Defines child serializer context.
252
- *
253
- * Called by serializers on context change.
254
- *
255
- * @param {Partial<SerializerContextOptions<any>>} childSerializerContextOptions Partial of serializer context options to override.
256
- *
257
- * @returns {SerializerContext<any>} Child serializer context.
258
- */
259
- defineChildSerializerContext(childSerializerContextOptions: Partial<SerializerContextOptions<any>>): SerializerContext<any>;
260
- /**
261
- * Defines generic serializer context.
262
- *
263
- * Called by serializers which work with generics.
264
- *
265
- * @param {number} genericIndex Generic index.
266
- *
267
- * @returns {SerializerContext<any>} Generic serializer context.
268
- */
269
- defineGenericSerializerContext(genericIndex: number): SerializerContext<any>;
270
- /**
271
- * Defines polymorphic serializer context by type function.
272
- *
273
- * @param {TypeFn<any>} typeFn Type function.
274
- *
275
- * @returns {SerializerContext<any>} Polymorphic serializer context.
276
- */
277
- private definePolymorphicSerializerContextByTypeFn;
278
- /**
279
- * Defines polymorphic serializer context by discriminant.
280
- *
281
- * @param {Record<string, any>} record Some record.
282
- *
283
- * @returns {SerializerContext<any>} Polymorphic serializer context.
284
- */
285
- private definePolymorphicSerializerContextByDiscriminant;
286
- /**
287
- * Defines polymorphic serializer context.
288
- *
289
- * Called by serializers which work with polymorphic types.
290
- *
291
- * @param {TypeFn<any>|Record<string, any>} x Type function or record.
292
- *
293
- * @returns {SerializerContext<any>} Polymorphic serializer context.
294
- */
295
- definePolymorphicSerializerContext(x: TypeFn<any> | Record<string, any>): SerializerContext<any>;
296
- }
1
+ import { CustomData } from './custom-data';
2
+ import { Discriminant } from './discriminant';
3
+ import { Discriminator } from './discriminator';
4
+ import { Factory } from './factory';
5
+ import { GenericArgument } from './generic-argument';
6
+ import { GenericMetadata } from './generic-metadata';
7
+ import { Injector } from './injector';
8
+ import { Log } from './log';
9
+ import { Metadata } from './metadata';
10
+ import { NamingConvention } from './naming-convention';
11
+ import { PropertyMetadata } from './property-metadata';
12
+ import { ReferenceCallback } from './reference-callback';
13
+ import { ReferenceHandler } from './reference-handler';
14
+ import { ReferenceKey } from './reference-key';
15
+ import { ReferenceValue } from './reference-value';
16
+ import { ReferenceValueInitializer } from './reference-value-initializer';
17
+ import { ReferenceValueResolver } from './reference-value-resolver';
18
+ import { Serializer } from './serializer';
19
+ import { SerializerContextOptions } from './serializer-context-options';
20
+ import { TypeFn } from './type-fn';
21
+ import { TypeLike } from './type-like';
22
+ import { TypeMetadata } from './type-metadata';
23
+ /**
24
+ * Serializer context of a certain type.
25
+ *
26
+ * @type {SerializerContext<TType>}
27
+ */
28
+ export declare class SerializerContext<TType> extends Metadata {
29
+ /**
30
+ * Serializer context options.
31
+ *
32
+ * @type {SerializerContext<TType>}
33
+ */
34
+ readonly serializerContextOptions: SerializerContextOptions<TType>;
35
+ /**
36
+ * Constructor.
37
+ *
38
+ * @param {SerializerContextOptions<TType>} serializerContextOptions Serializer context options.
39
+ */
40
+ constructor(serializerContextOptions: SerializerContextOptions<TType>);
41
+ /**
42
+ * Gets serializer context root.
43
+ *
44
+ * @returns {any} Serializer context root.
45
+ */
46
+ get $(): any;
47
+ /**
48
+ * Gets custom data.
49
+ *
50
+ * @returns {CustomData} Custom data.
51
+ */
52
+ get customData(): CustomData;
53
+ /**
54
+ * Gets serialized default value.
55
+ *
56
+ * @returns {any|undefined} Resolved serialized default value or undefined.
57
+ */
58
+ get serializedDefaultValue(): any | undefined;
59
+ /**
60
+ * Gets deserialized default value.
61
+ *
62
+ * @returns {any|undefined} Resolved deserialized default value or undefined.
63
+ */
64
+ get deserializedDefaultValue(): any | undefined;
65
+ /**
66
+ * Gets discriminant.
67
+ *
68
+ * @returns {Discriminant} Discriminant.
69
+ */
70
+ get discriminant(): Discriminant;
71
+ /**
72
+ * Gets discriminant map.
73
+ *
74
+ * @returns {Map<TypeFn<any>, Discriminant>} Discriminant map.
75
+ */
76
+ get discriminantMap(): Map<TypeFn<any>, Discriminant>;
77
+ /**
78
+ * Gets discriminator.
79
+ *
80
+ * @returns {Discriminator} Discriminator.
81
+ */
82
+ get discriminator(): Discriminator;
83
+ /**
84
+ * Gets factory.
85
+ *
86
+ * @returns {Factory} Factory.
87
+ */
88
+ get factory(): Factory;
89
+ /**
90
+ * Gets generic arguments.
91
+ *
92
+ * @returns {Array<GenericArgument<any>>|undefined} Generic arguments or undefined.
93
+ */
94
+ get genericArguments(): Array<GenericArgument<any>> | undefined;
95
+ /**
96
+ * Gets generic metadatas.
97
+ *
98
+ * @returns {Array<GenericMetadata<any>>|undefined} Generic metadatas.
99
+ */
100
+ get genericMetadatas(): Array<GenericMetadata<any>> | undefined;
101
+ /**
102
+ * Gets injector.
103
+ *
104
+ * @returns {Injector} Injector
105
+ */
106
+ get injector(): Injector;
107
+ /**
108
+ * Gets log.
109
+ *
110
+ * @returns {Log} Log instance.
111
+ */
112
+ get log(): Log;
113
+ /**
114
+ * Gets context name.
115
+ *
116
+ * @returns {string} Context name.
117
+ */
118
+ get name(): string;
119
+ /**
120
+ * Gets naming convention.
121
+ *
122
+ * @returns {NamingConvention|undefined} Naming convention or undefined.
123
+ */
124
+ get namingConvention(): NamingConvention | undefined;
125
+ /**
126
+ * Gets JSONPath from serializer context root.
127
+ *
128
+ * @returns {string} Path.
129
+ */
130
+ get path(): string;
131
+ /**
132
+ * Gets indicator if context is polymorphic.
133
+ *
134
+ * @returns {boolean} True when context is polymorphic. False otherwise.
135
+ */
136
+ get polymorphic(): boolean;
137
+ /**
138
+ * Gets property metadata.
139
+ *
140
+ * @returns {PropertyMetadata<any, TType>|undefined} Property metadata or undefined.
141
+ */
142
+ get propertyMetadata(): PropertyMetadata<any, TType> | undefined;
143
+ /**
144
+ * Gets indicator if discriminator should be preserved.
145
+ *
146
+ * @returns {boolean} True when discriminator should be preserved. False otherwise.
147
+ */
148
+ get preserveDiscriminator(): boolean;
149
+ /**
150
+ * Gets reference handler.
151
+ *
152
+ * @returns {ReferenceHandler} Reference handler.
153
+ */
154
+ get referenceHandler(): ReferenceHandler;
155
+ /**
156
+ * Gets reference callback map.
157
+ *
158
+ * @returns {WeakMap<ReferenceKey, Array<ReferenceCallback>>} Reference callback map.
159
+ */
160
+ get referenceCallbackMap(): WeakMap<ReferenceKey, Array<ReferenceCallback>>;
161
+ /**
162
+ * Gets reference map.
163
+ *
164
+ * @returns {WeakMap<ReferenceKey, ReferenceValue>} Reference map.
165
+ */
166
+ get referenceMap(): WeakMap<ReferenceKey, ReferenceValue>;
167
+ /**
168
+ * Gets serializer.
169
+ *
170
+ * @returns {Serializer<TType>} Serializer.
171
+ */
172
+ get serializer(): Serializer<TType>;
173
+ /**
174
+ * Gets type metadata.
175
+ *
176
+ * @returns {TypeMetadata<TType>} Type metadata.
177
+ */
178
+ get typeMetadata(): TypeMetadata<TType>;
179
+ /**
180
+ * Gets indicator if default value should be used.
181
+ *
182
+ * @returns {boolean} True when type should use default value. False otherwise.
183
+ */
184
+ get useDefaultValue(): boolean;
185
+ /**
186
+ * Gets indicator if implicit conversion should be used.
187
+ *
188
+ * @returns {boolean} True when type should use implicit conversion. False otherwise.
189
+ */
190
+ get useImplicitConversion(): boolean;
191
+ /**
192
+ * Serializes provided value using context.
193
+ *
194
+ * @param {TypeLike<TType>} x Some value.
195
+ *
196
+ * @returns {TypeLike<any>} Value serialized by context.
197
+ */
198
+ serialize(x: TypeLike<TType>): TypeLike<any>;
199
+ /**
200
+ * Deserializes provided value using context.
201
+ *
202
+ * @param {TypeLike<any>} x Some value.
203
+ *
204
+ * @returns {TypeLike<TType>} Value deserialized by context.
205
+ */
206
+ deserialize(x: TypeLike<any>): TypeLike<TType>;
207
+ /**
208
+ * Defines reference.
209
+ *
210
+ * May be called during serialization to define reference.
211
+ *
212
+ * @param {ReferenceKey} referenceKey Reference key.
213
+ * @param {ReferenceValueInitializer} referenceValueInitializer Reference value initializer.
214
+ *
215
+ * @returns {ReferenceValue|ReferenceValueResolver} Reference value or reference value resolver when circular dependency is detected.
216
+ */
217
+ defineReference(referenceKey: ReferenceKey, referenceValueInitializer: ReferenceValueInitializer): ReferenceValue | ReferenceValueResolver;
218
+ /**
219
+ * Restores reference.
220
+ *
221
+ * May be called during deserialization to restore reference.
222
+ *
223
+ * @param {ReferenceKey} referenceKey Reference key.
224
+ * @param {ReferenceValueInitializer} referenceValueInitializer Reference value initializer.
225
+ *
226
+ * @returns {ReferenceValue|ReferenceValueResolver} Reference value or reference value resolver when circular dependency is detected.
227
+ */
228
+ restoreReference(referenceKey: ReferenceKey, referenceValueInitializer: ReferenceValueInitializer): ReferenceValue | ReferenceValueResolver;
229
+ /**
230
+ * Pushes callback for provided reference key.
231
+ *
232
+ * Called by serializers during handling of circular references.
233
+ *
234
+ * @param {ReferenceKey} referenceKey Reference key.
235
+ * @param {ReferenceCallback} referenceCallback Reference callback.
236
+ *
237
+ * @returns {void}
238
+ */
239
+ pushReferenceCallback(referenceKey: ReferenceKey, referenceCallback: ReferenceCallback): void;
240
+ /**
241
+ * Resolves callbacks for provided reference key.
242
+ *
243
+ * Called by reference handlers when circular references can be resolved.
244
+ *
245
+ * @param {ReferenceKey} referenceKey Reference key.
246
+ *
247
+ * @returns {void}
248
+ */
249
+ resolveReferenceCallbacks(referenceKey: ReferenceKey): void;
250
+ /**
251
+ * Defines child serializer context.
252
+ *
253
+ * Called by serializers on context change.
254
+ *
255
+ * @param {Partial<SerializerContextOptions<any>>} childSerializerContextOptions Partial of serializer context options to override.
256
+ *
257
+ * @returns {SerializerContext<any>} Child serializer context.
258
+ */
259
+ defineChildSerializerContext(childSerializerContextOptions: Partial<SerializerContextOptions<any>>): SerializerContext<any>;
260
+ /**
261
+ * Defines generic serializer context.
262
+ *
263
+ * Called by serializers which work with generics.
264
+ *
265
+ * @param {number} genericIndex Generic index.
266
+ *
267
+ * @returns {SerializerContext<any>} Generic serializer context.
268
+ */
269
+ defineGenericSerializerContext(genericIndex: number): SerializerContext<any>;
270
+ /**
271
+ * Defines polymorphic serializer context by type function.
272
+ *
273
+ * @param {TypeFn<any>} typeFn Type function.
274
+ *
275
+ * @returns {SerializerContext<any>} Polymorphic serializer context.
276
+ */
277
+ private definePolymorphicSerializerContextByTypeFn;
278
+ /**
279
+ * Defines polymorphic serializer context by discriminant.
280
+ *
281
+ * @param {Record<string, any>} record Some record.
282
+ *
283
+ * @returns {SerializerContext<any>} Polymorphic serializer context.
284
+ */
285
+ private definePolymorphicSerializerContextByDiscriminant;
286
+ /**
287
+ * Defines polymorphic serializer context.
288
+ *
289
+ * Called by serializers which work with polymorphic types.
290
+ *
291
+ * @param {TypeFn<any>|Record<string, any>} x Type function or record.
292
+ *
293
+ * @returns {SerializerContext<any>} Polymorphic serializer context.
294
+ */
295
+ definePolymorphicSerializerContext(x: TypeFn<any> | Record<string, any>): SerializerContext<any>;
296
+ }
@@ -1,27 +1,27 @@
1
- import { SerializerContext } from './serializer-context';
2
- import { TypeLike } from './type-like';
3
- /**
4
- * Serializer.
5
- *
6
- * @type {Serializer<TType>}
7
- */
8
- export interface Serializer<TType> {
9
- /**
10
- * Serializes provided value.
11
- *
12
- * @param {TypeLike<TType>} x Some value.
13
- * @param {SerializerContext<TType>} serializerContext Serializer context.
14
- *
15
- * @returns {TypeLike<any>} Serialized value.
16
- */
17
- serialize(x: TypeLike<TType>, serializerContext: SerializerContext<TType>): TypeLike<any>;
18
- /**
19
- * Deserializes provided value.
20
- *
21
- * @param {TypeLike<any>} x Some value.
22
- * @param {SerializerContext<TType>} serializerContext Serializer context.
23
- *
24
- * @returns {TypeLike<TType>} Deserialized value.
25
- */
26
- deserialize(x: TypeLike<any>, serializerContext: SerializerContext<TType>): TypeLike<TType>;
27
- }
1
+ import { SerializerContext } from './serializer-context';
2
+ import { TypeLike } from './type-like';
3
+ /**
4
+ * Serializer.
5
+ *
6
+ * @type {Serializer<TType>}
7
+ */
8
+ export interface Serializer<TType> {
9
+ /**
10
+ * Serializes provided value.
11
+ *
12
+ * @param {TypeLike<TType>} x Some value.
13
+ * @param {SerializerContext<TType>} serializerContext Serializer context.
14
+ *
15
+ * @returns {TypeLike<any>} Serialized value.
16
+ */
17
+ serialize(x: TypeLike<TType>, serializerContext: SerializerContext<TType>): TypeLike<any>;
18
+ /**
19
+ * Deserializes provided value.
20
+ *
21
+ * @param {TypeLike<any>} x Some value.
22
+ * @param {SerializerContext<TType>} serializerContext Serializer context.
23
+ *
24
+ * @returns {TypeLike<TType>} Deserialized value.
25
+ */
26
+ deserialize(x: TypeLike<any>, serializerContext: SerializerContext<TType>): TypeLike<TType>;
27
+ }
@@ -1,8 +1,8 @@
1
- /**
2
- * Type abstraction.
3
- *
4
- * @type {TypeAbstraction<TType>}
5
- */
6
- export declare type TypeAbstraction<TType> = Function & {
7
- prototype: TType;
8
- };
1
+ /**
2
+ * Type abstraction.
3
+ *
4
+ * @type {TypeAbstraction<TType>}
5
+ */
6
+ export declare type TypeAbstraction<TType> = Function & {
7
+ prototype: TType;
8
+ };