@dipscope/type-manager 5.0.0-beta.1 → 5.0.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 +224 -224
- package/LICENSE.md +201 -201
- package/README.md +1857 -1846
- package/alias.d.ts +6 -6
- package/custom-data.d.ts +6 -6
- package/default-value-resolver.d.ts +7 -7
- package/default-value.d.ts +7 -7
- package/discriminant.d.ts +8 -8
- package/discriminator.d.ts +6 -6
- package/factories/index.d.ts +1 -1
- package/factories/type-factory.d.ts +19 -19
- package/factory.d.ts +18 -18
- package/functions/get-own-reflect-metadata.d.ts +9 -9
- package/functions/get-reflect-metadata.d.ts +10 -10
- package/functions/get-words.d.ts +8 -8
- package/functions/index.d.ts +16 -16
- package/functions/is-arrow-function.d.ts +8 -8
- package/functions/is-ctor-function.d.ts +8 -8
- package/functions/is-data-view.d.ts +8 -8
- package/functions/is-float-32-array.d.ts +8 -8
- package/functions/is-float-64-array.d.ts +8 -8
- package/functions/is-int-16-array.d.ts +8 -8
- package/functions/is-int-32-array.d.ts +8 -8
- package/functions/is-int-8-array.d.ts +8 -8
- package/functions/is-uint-16-array.d.ts +8 -8
- package/functions/is-uint-32-array.d.ts +8 -8
- package/functions/is-uint-8-array.d.ts +8 -8
- package/functions/is-uint-8-clamped-array.d.ts +8 -8
- package/functions/name-of.d.ts +8 -8
- package/generic-argument.d.ts +7 -7
- package/generic-metadata.d.ts +7 -7
- package/index.d.ts +54 -54
- package/index.js +1 -1
- package/inject-index.d.ts +6 -6
- package/inject-metadata.d.ts +88 -72
- package/inject-options.d.ts +22 -22
- package/inject.d.ts +10 -10
- package/injector.d.ts +16 -16
- package/injectors/index.d.ts +1 -1
- package/injectors/singleton-injector.d.ts +31 -31
- package/log-level.d.ts +11 -11
- package/log.d.ts +95 -95
- package/metadata.d.ts +42 -42
- package/naming-convention.d.ts +15 -15
- package/naming-conventions/camel-case-naming-convention.d.ts +26 -26
- package/naming-conventions/flat-case-naming-convention.d.ts +25 -25
- package/naming-conventions/flat-upper-case-naming-convention.d.ts +25 -25
- package/naming-conventions/index.d.ts +8 -8
- package/naming-conventions/kebab-case-naming-convention.d.ts +26 -26
- package/naming-conventions/kebab-upper-case-naming-convention.d.ts +26 -26
- package/naming-conventions/pascal-case-naming-convention.d.ts +26 -26
- package/naming-conventions/snake-case-naming-convention.d.ts +26 -26
- package/naming-conventions/snake-upper-case-naming-convention.d.ts +26 -26
- package/package.json +55 -51
- package/property-metadata.d.ts +309 -196
- package/property-name.d.ts +6 -6
- package/property-options.d.ts +116 -116
- package/property.d.ts +13 -13
- package/reference-callback.d.ts +7 -7
- package/reference-handler.d.ts +31 -31
- package/reference-handlers/direct-reference-handler.d.ts +32 -32
- package/reference-handlers/index.d.ts +3 -3
- package/reference-handlers/lead-reference-handler.d.ts +33 -33
- package/reference-handlers/path-reference-handler.d.ts +55 -55
- package/reference-key.d.ts +6 -6
- package/reference-value-getter.d.ts +7 -7
- package/reference-value-setter.d.ts +7 -7
- package/reference-value.d.ts +6 -6
- package/serializer-context-options.d.ts +43 -43
- package/serializer-context.d.ts +410 -362
- package/serializer.d.ts +27 -27
- package/serializers/array-buffer-serializer.d.ts +28 -28
- package/serializers/array-serializer.d.ts +28 -28
- package/serializers/boolean-serializer.d.ts +37 -37
- package/serializers/data-view-serializer.d.ts +28 -28
- package/serializers/date-serializer.d.ts +28 -28
- package/serializers/float-32-array-serializer.d.ts +28 -28
- package/serializers/float-64-array-serializer.d.ts +28 -28
- package/serializers/index.d.ts +19 -19
- package/serializers/int-16-array-serializer.d.ts +28 -28
- package/serializers/int-32-array-serializer.d.ts +28 -28
- package/serializers/int-8-array-serializer.d.ts +28 -28
- package/serializers/map-serializer.d.ts +28 -40
- package/serializers/number-serializer.d.ts +37 -37
- package/serializers/set-serializer.d.ts +28 -28
- package/serializers/string-serializer.d.ts +37 -37
- package/serializers/type-serializer.d.ts +28 -28
- package/serializers/uint-16-array-serializer.d.ts +28 -28
- package/serializers/uint-32-array-serializer.d.ts +28 -28
- package/serializers/uint-8-array-serializer.d.ts +28 -28
- package/serializers/uint-8-clamped-array-serializer.d.ts +28 -28
- package/type-abstraction.d.ts +8 -8
- package/type-argument.d.ts +9 -9
- package/type-context-entry.d.ts +36 -36
- package/type-context.d.ts +58 -58
- package/type-ctor.d.ts +6 -6
- package/type-fn.d.ts +8 -8
- package/type-like.d.ts +7 -7
- package/type-manager-options.d.ts +24 -24
- package/type-manager.d.ts +331 -331
- package/type-metadata-resolver.d.ts +8 -8
- package/type-metadata-symbol.d.ts +6 -6
- package/type-metadata.d.ts +472 -322
- package/type-name.d.ts +6 -6
- package/type-options-base.d.ts +90 -90
- package/type-options.d.ts +79 -79
- package/type-resolver.d.ts +7 -7
- package/type.d.ts +9 -9
package/serializer-context.d.ts
CHANGED
|
@@ -1,362 +1,410 @@
|
|
|
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 { ReferenceValueGetter } from './reference-value-getter';
|
|
17
|
-
import { ReferenceValueSetter } from './reference-value-setter';
|
|
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 root.
|
|
31
|
-
*
|
|
32
|
-
* This is a value passed to the root serializer.
|
|
33
|
-
*
|
|
34
|
-
* @type {any}
|
|
35
|
-
*/
|
|
36
|
-
readonly $: any;
|
|
37
|
-
/**
|
|
38
|
-
* Reference map.
|
|
39
|
-
*
|
|
40
|
-
* Used to preserve object references.
|
|
41
|
-
*
|
|
42
|
-
* @type {WeakMap<ReferenceKey, ReferenceValue>}
|
|
43
|
-
*/
|
|
44
|
-
readonly referenceMap: WeakMap<ReferenceKey, ReferenceValue>;
|
|
45
|
-
/**
|
|
46
|
-
* Reference callback map.
|
|
47
|
-
*
|
|
48
|
-
* Used to assign object references in a later time due to circular dependency.
|
|
49
|
-
*
|
|
50
|
-
* @type {WeakMap<ReferenceKey, Array<ReferenceCallback>>}
|
|
51
|
-
*/
|
|
52
|
-
readonly referenceCallbackMap: WeakMap<ReferenceKey, Array<ReferenceCallback>>;
|
|
53
|
-
/**
|
|
54
|
-
* Serializer context options.
|
|
55
|
-
*
|
|
56
|
-
* @type {SerializerContext<TType>}
|
|
57
|
-
*/
|
|
58
|
-
readonly serializerContextOptions: SerializerContextOptions<TType>;
|
|
59
|
-
/**
|
|
60
|
-
* Parent serializer context.
|
|
61
|
-
*
|
|
62
|
-
* Present when any serializer defines child context.
|
|
63
|
-
*
|
|
64
|
-
* @type {SerializerContext<any>}
|
|
65
|
-
*/
|
|
66
|
-
readonly parentSerializerContext?: SerializerContext<any>;
|
|
67
|
-
/**
|
|
68
|
-
* Constructor.
|
|
69
|
-
*
|
|
70
|
-
* @param {any} $ Serializer context root.
|
|
71
|
-
* @param {WeakMap<ReferenceKey, ReferenceValue>} referenceMap Reference map.
|
|
72
|
-
* @param {WeakMap<ReferenceKey, Array<ReferenceCallback>>} referenceCallbackMap Reference callback map.
|
|
73
|
-
* @param {SerializerContextOptions<TType>} serializerContextOptions Serializer context options.
|
|
74
|
-
* @param {SerializerContext<any>} parentSerializerContext Parent serializer context.
|
|
75
|
-
*/
|
|
76
|
-
constructor($: any, referenceMap: WeakMap<ReferenceKey, ReferenceValue>, referenceCallbackMap: WeakMap<ReferenceKey, Array<ReferenceCallback>>, serializerContextOptions: SerializerContextOptions<TType>, parentSerializerContext?: SerializerContext<any>);
|
|
77
|
-
/**
|
|
78
|
-
* Gets json path key.
|
|
79
|
-
*
|
|
80
|
-
* @returns {string|number} Json path key.
|
|
81
|
-
*/
|
|
82
|
-
get jsonPathKey(): any;
|
|
83
|
-
/**
|
|
84
|
-
* Gets reference value setter.
|
|
85
|
-
*
|
|
86
|
-
* @returns {ReferenceValueSetter|undefined} Reference value setter or undefined if not present.
|
|
87
|
-
*/
|
|
88
|
-
get referenceValueSetter(): ReferenceValueSetter | undefined;
|
|
89
|
-
/**
|
|
90
|
-
* Gets custom data.
|
|
91
|
-
*
|
|
92
|
-
* @returns {CustomData} Custom data.
|
|
93
|
-
*/
|
|
94
|
-
get customData(): CustomData;
|
|
95
|
-
/**
|
|
96
|
-
* Gets serialized null value.
|
|
97
|
-
*
|
|
98
|
-
* @returns {any|undefined} Resolved serialized null value or undefined.
|
|
99
|
-
*/
|
|
100
|
-
get serializedNullValue(): any | undefined;
|
|
101
|
-
/**
|
|
102
|
-
* Gets serialized default value.
|
|
103
|
-
*
|
|
104
|
-
* @returns {any|undefined} Resolved serialized default value or undefined.
|
|
105
|
-
*/
|
|
106
|
-
get serializedDefaultValue(): any | undefined;
|
|
107
|
-
/**
|
|
108
|
-
* Gets deserialized null value.
|
|
109
|
-
*
|
|
110
|
-
* @returns {any|undefined} Resolved deserialized null value or undefined.
|
|
111
|
-
*/
|
|
112
|
-
get deserializedNullValue(): any | undefined;
|
|
113
|
-
/**
|
|
114
|
-
* Gets deserialized default value.
|
|
115
|
-
*
|
|
116
|
-
* @returns {any|undefined} Resolved deserialized default value or undefined.
|
|
117
|
-
*/
|
|
118
|
-
get deserializedDefaultValue(): any | undefined;
|
|
119
|
-
/**
|
|
120
|
-
* Gets json path from serializer context root.
|
|
121
|
-
*
|
|
122
|
-
* @returns {string} Json path.
|
|
123
|
-
*/
|
|
124
|
-
get jsonPath(): string;
|
|
125
|
-
/**
|
|
126
|
-
* Gets discriminant.
|
|
127
|
-
*
|
|
128
|
-
* @returns {Discriminant} Discriminant.
|
|
129
|
-
*/
|
|
130
|
-
get discriminant(): Discriminant;
|
|
131
|
-
/**
|
|
132
|
-
* Gets discriminant map.
|
|
133
|
-
*
|
|
134
|
-
* @returns {Map<TypeFn<any>, Discriminant>} Discriminant map.
|
|
135
|
-
*/
|
|
136
|
-
get discriminantMap(): Map<TypeFn<any>, Discriminant>;
|
|
137
|
-
/**
|
|
138
|
-
* Gets discriminator.
|
|
139
|
-
*
|
|
140
|
-
* @returns {Discriminator} Discriminator.
|
|
141
|
-
*/
|
|
142
|
-
get discriminator(): Discriminator;
|
|
143
|
-
/**
|
|
144
|
-
* Gets factory.
|
|
145
|
-
*
|
|
146
|
-
* @returns {Factory} Factory.
|
|
147
|
-
*/
|
|
148
|
-
get factory(): Factory;
|
|
149
|
-
/**
|
|
150
|
-
* Gets generic arguments.
|
|
151
|
-
*
|
|
152
|
-
* @returns {Array<GenericArgument<any>>|undefined} Generic arguments or undefined.
|
|
153
|
-
*/
|
|
154
|
-
get genericArguments(): Array<GenericArgument<any>> | undefined;
|
|
155
|
-
/**
|
|
156
|
-
* Gets generic metadatas.
|
|
157
|
-
*
|
|
158
|
-
* @returns {Array<GenericMetadata<any>>|undefined} Generic metadatas.
|
|
159
|
-
*/
|
|
160
|
-
get genericMetadatas(): Array<GenericMetadata<any>> | undefined;
|
|
161
|
-
/**
|
|
162
|
-
* Gets injector.
|
|
163
|
-
*
|
|
164
|
-
* @returns {Injector} Injector
|
|
165
|
-
*/
|
|
166
|
-
get injector(): Injector;
|
|
167
|
-
/**
|
|
168
|
-
* Gets log.
|
|
169
|
-
*
|
|
170
|
-
* @returns {Log} Log instance.
|
|
171
|
-
*/
|
|
172
|
-
get log(): Log;
|
|
173
|
-
/**
|
|
174
|
-
* Gets context name.
|
|
175
|
-
*
|
|
176
|
-
* @returns {string} Context name.
|
|
177
|
-
*/
|
|
178
|
-
get name(): string;
|
|
179
|
-
/**
|
|
180
|
-
* Gets naming convention.
|
|
181
|
-
*
|
|
182
|
-
* @returns {NamingConvention|undefined} Naming convention or undefined.
|
|
183
|
-
*/
|
|
184
|
-
get namingConvention(): NamingConvention | undefined;
|
|
185
|
-
/**
|
|
186
|
-
* Gets indicator if context is polymorphic.
|
|
187
|
-
*
|
|
188
|
-
* @returns {boolean} True when context is polymorphic. False otherwise.
|
|
189
|
-
*/
|
|
190
|
-
get polymorphic(): boolean;
|
|
191
|
-
/**
|
|
192
|
-
* Gets property metadata.
|
|
193
|
-
*
|
|
194
|
-
* @returns {PropertyMetadata<any, TType>|undefined} Property metadata or undefined.
|
|
195
|
-
*/
|
|
196
|
-
get propertyMetadata(): PropertyMetadata<any, TType> | undefined;
|
|
197
|
-
/**
|
|
198
|
-
* Gets indicator if discriminator should be preserved.
|
|
199
|
-
*
|
|
200
|
-
* @returns {boolean} True when discriminator should be preserved. False otherwise.
|
|
201
|
-
*/
|
|
202
|
-
get preserveDiscriminator(): boolean;
|
|
203
|
-
/**
|
|
204
|
-
* Gets reference handler.
|
|
205
|
-
*
|
|
206
|
-
* @returns {ReferenceHandler} Reference handler.
|
|
207
|
-
*/
|
|
208
|
-
get referenceHandler(): ReferenceHandler;
|
|
209
|
-
/**
|
|
210
|
-
* Gets serializer.
|
|
211
|
-
*
|
|
212
|
-
* @returns {Serializer<TType>} Serializer.
|
|
213
|
-
*/
|
|
214
|
-
get serializer(): Serializer<TType>;
|
|
215
|
-
/**
|
|
216
|
-
* Gets type metadata.
|
|
217
|
-
*
|
|
218
|
-
* @returns {TypeMetadata<TType>} Type metadata.
|
|
219
|
-
*/
|
|
220
|
-
get typeMetadata(): TypeMetadata<TType>;
|
|
221
|
-
/**
|
|
222
|
-
* Gets indicator if null value should be preserved.
|
|
223
|
-
*
|
|
224
|
-
* @returns {boolean} True when null value should be preserved. False otherwise.
|
|
225
|
-
*/
|
|
226
|
-
get preserveNull(): boolean;
|
|
227
|
-
/**
|
|
228
|
-
* Gets indicator if default value should be used.
|
|
229
|
-
*
|
|
230
|
-
* @returns {boolean} True when type should use default value. False otherwise.
|
|
231
|
-
*/
|
|
232
|
-
get useDefaultValue(): boolean;
|
|
233
|
-
/**
|
|
234
|
-
* Gets indicator if implicit conversion should be used.
|
|
235
|
-
*
|
|
236
|
-
* @returns {boolean} True when type should use implicit conversion. False otherwise.
|
|
237
|
-
*/
|
|
238
|
-
get useImplicitConversion(): boolean;
|
|
239
|
-
/**
|
|
240
|
-
* Serializes provided value using context.
|
|
241
|
-
*
|
|
242
|
-
* @param {TypeLike<TType>} x Some value.
|
|
243
|
-
*
|
|
244
|
-
* @returns {TypeLike<any>} Value serialized by context.
|
|
245
|
-
*/
|
|
246
|
-
serialize(x: TypeLike<TType>): TypeLike<any>;
|
|
247
|
-
/**
|
|
248
|
-
* Deserializes provided value using context.
|
|
249
|
-
*
|
|
250
|
-
* @param {TypeLike<any>} x Some value.
|
|
251
|
-
*
|
|
252
|
-
* @returns {TypeLike<TType>} Value deserialized by context.
|
|
253
|
-
*/
|
|
254
|
-
deserialize(x: TypeLike<any>): TypeLike<TType>;
|
|
255
|
-
/**
|
|
256
|
-
* Defines reference.
|
|
257
|
-
*
|
|
258
|
-
* May be called during serialization to define reference.
|
|
259
|
-
*
|
|
260
|
-
* @param {ReferenceKey} referenceKey Reference key.
|
|
261
|
-
* @param {ReferenceValueGetter} referenceValueGetter Reference value getter.
|
|
262
|
-
*
|
|
263
|
-
* @returns {ReferenceValue} Reference value.
|
|
264
|
-
*/
|
|
265
|
-
defineReference(referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
266
|
-
/**
|
|
267
|
-
* Restores reference.
|
|
268
|
-
*
|
|
269
|
-
* May be called during deserialization to restore reference.
|
|
270
|
-
*
|
|
271
|
-
* @param {ReferenceKey} referenceKey Reference key.
|
|
272
|
-
* @param {ReferenceValueGetter} referenceValueGetter Reference value getter.
|
|
273
|
-
*
|
|
274
|
-
* @returns {ReferenceValue} Reference value.
|
|
275
|
-
*/
|
|
276
|
-
restoreReference(referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
277
|
-
/**
|
|
278
|
-
* Registers callback for provided reference key.
|
|
279
|
-
*
|
|
280
|
-
* May be called by reference handlers to register a callback resolver for a circular reference.
|
|
281
|
-
*
|
|
282
|
-
* @param {ReferenceKey} referenceKey Reference key.
|
|
283
|
-
*
|
|
284
|
-
* @returns {void}
|
|
285
|
-
*/
|
|
286
|
-
registerReferenceCallback(referenceKey: ReferenceKey): void;
|
|
287
|
-
/**
|
|
288
|
-
* Pushes callback for provided reference key.
|
|
289
|
-
*
|
|
290
|
-
* Called by reference handlers during handling of circular references.
|
|
291
|
-
*
|
|
292
|
-
* @param {ReferenceKey} referenceKey Reference key.
|
|
293
|
-
* @param {ReferenceCallback} referenceCallback Reference callback.
|
|
294
|
-
*
|
|
295
|
-
* @returns {void}
|
|
296
|
-
*/
|
|
297
|
-
pushReferenceCallback(referenceKey: ReferenceKey, referenceCallback: ReferenceCallback): void;
|
|
298
|
-
/**
|
|
299
|
-
* Resolves callbacks for provided reference key.
|
|
300
|
-
*
|
|
301
|
-
* May be called by reference handlers when circular references can be resolved.
|
|
302
|
-
*
|
|
303
|
-
* @param {ReferenceKey} referenceKey Reference key.
|
|
304
|
-
*
|
|
305
|
-
* @returns {void}
|
|
306
|
-
*/
|
|
307
|
-
resolveReferenceCallbacks(referenceKey: ReferenceKey): void;
|
|
308
|
-
/**
|
|
309
|
-
* Defines serializer context options based on partial.
|
|
310
|
-
*
|
|
311
|
-
* @param {Partial<SerializerContextOptions<any>>} serializerContextOptions Partial serializer context options.
|
|
312
|
-
*
|
|
313
|
-
* @returns {SerializerContextOptions<any>} Complete serializer context options.
|
|
314
|
-
*/
|
|
315
|
-
private defineSerializerContextOptions;
|
|
316
|
-
/**
|
|
317
|
-
* Defines child serializer context.
|
|
318
|
-
*
|
|
319
|
-
* Called by serializers on drill down.
|
|
320
|
-
*
|
|
321
|
-
* @param {Partial<SerializerContextOptions<any>>} childSerializerContextOptions Child serializer context options.
|
|
322
|
-
*
|
|
323
|
-
* @returns {SerializerContext<any>} Child serializer context.
|
|
324
|
-
*/
|
|
325
|
-
defineChildSerializerContext(childSerializerContextOptions: Partial<SerializerContextOptions<any>>): SerializerContext<any>;
|
|
326
|
-
/**
|
|
327
|
-
* Defines generic serializer context.
|
|
328
|
-
*
|
|
329
|
-
* Called by serializers which work with generics.
|
|
330
|
-
*
|
|
331
|
-
* @param {number} genericIndex Generic index.
|
|
332
|
-
*
|
|
333
|
-
* @returns {SerializerContext<any>} Generic serializer context.
|
|
334
|
-
*/
|
|
335
|
-
defineGenericSerializerContext(genericIndex: number): SerializerContext<any>;
|
|
336
|
-
/**
|
|
337
|
-
* Defines polymorphic serializer context.
|
|
338
|
-
*
|
|
339
|
-
* Called by serializers which work with polymorphic types.
|
|
340
|
-
*
|
|
341
|
-
* @param {TypeFn<any>|Record<string, any>} x Type function or record.
|
|
342
|
-
*
|
|
343
|
-
* @returns {SerializerContext<any>} Polymorphic serializer context.
|
|
344
|
-
*/
|
|
345
|
-
definePolymorphicSerializerContext(x: TypeFn<any> | Record<string, any>): SerializerContext<any>;
|
|
346
|
-
/**
|
|
347
|
-
* Defines polymorphic serializer context by type function.
|
|
348
|
-
*
|
|
349
|
-
* @param {TypeFn<any>} typeFn Type function.
|
|
350
|
-
*
|
|
351
|
-
* @returns {SerializerContext<any>} Polymorphic serializer context.
|
|
352
|
-
*/
|
|
353
|
-
private definePolymorphicSerializerContextByTypeFn;
|
|
354
|
-
/**
|
|
355
|
-
* Defines polymorphic serializer context by discriminant.
|
|
356
|
-
*
|
|
357
|
-
* @param {Record<string, any>} record Some record.
|
|
358
|
-
*
|
|
359
|
-
* @returns {SerializerContext<any>} Polymorphic serializer context.
|
|
360
|
-
*/
|
|
361
|
-
private definePolymorphicSerializerContextByDiscriminant;
|
|
362
|
-
|
|
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 { ReferenceValueGetter } from './reference-value-getter';
|
|
17
|
+
import { ReferenceValueSetter } from './reference-value-setter';
|
|
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 root.
|
|
31
|
+
*
|
|
32
|
+
* This is a value passed to the root serializer.
|
|
33
|
+
*
|
|
34
|
+
* @type {any}
|
|
35
|
+
*/
|
|
36
|
+
readonly $: any;
|
|
37
|
+
/**
|
|
38
|
+
* Reference map.
|
|
39
|
+
*
|
|
40
|
+
* Used to preserve object references.
|
|
41
|
+
*
|
|
42
|
+
* @type {WeakMap<ReferenceKey, ReferenceValue>}
|
|
43
|
+
*/
|
|
44
|
+
readonly referenceMap: WeakMap<ReferenceKey, ReferenceValue>;
|
|
45
|
+
/**
|
|
46
|
+
* Reference callback map.
|
|
47
|
+
*
|
|
48
|
+
* Used to assign object references in a later time due to circular dependency.
|
|
49
|
+
*
|
|
50
|
+
* @type {WeakMap<ReferenceKey, Array<ReferenceCallback>>}
|
|
51
|
+
*/
|
|
52
|
+
readonly referenceCallbackMap: WeakMap<ReferenceKey, Array<ReferenceCallback>>;
|
|
53
|
+
/**
|
|
54
|
+
* Serializer context options.
|
|
55
|
+
*
|
|
56
|
+
* @type {SerializerContext<TType>}
|
|
57
|
+
*/
|
|
58
|
+
readonly serializerContextOptions: SerializerContextOptions<TType>;
|
|
59
|
+
/**
|
|
60
|
+
* Parent serializer context.
|
|
61
|
+
*
|
|
62
|
+
* Present when any serializer defines child context.
|
|
63
|
+
*
|
|
64
|
+
* @type {SerializerContext<any>}
|
|
65
|
+
*/
|
|
66
|
+
readonly parentSerializerContext?: SerializerContext<any>;
|
|
67
|
+
/**
|
|
68
|
+
* Constructor.
|
|
69
|
+
*
|
|
70
|
+
* @param {any} $ Serializer context root.
|
|
71
|
+
* @param {WeakMap<ReferenceKey, ReferenceValue>} referenceMap Reference map.
|
|
72
|
+
* @param {WeakMap<ReferenceKey, Array<ReferenceCallback>>} referenceCallbackMap Reference callback map.
|
|
73
|
+
* @param {SerializerContextOptions<TType>} serializerContextOptions Serializer context options.
|
|
74
|
+
* @param {SerializerContext<any>} parentSerializerContext Parent serializer context.
|
|
75
|
+
*/
|
|
76
|
+
constructor($: any, referenceMap: WeakMap<ReferenceKey, ReferenceValue>, referenceCallbackMap: WeakMap<ReferenceKey, Array<ReferenceCallback>>, serializerContextOptions: SerializerContextOptions<TType>, parentSerializerContext?: SerializerContext<any>);
|
|
77
|
+
/**
|
|
78
|
+
* Gets json path key.
|
|
79
|
+
*
|
|
80
|
+
* @returns {string|number} Json path key.
|
|
81
|
+
*/
|
|
82
|
+
get jsonPathKey(): any;
|
|
83
|
+
/**
|
|
84
|
+
* Gets reference value setter.
|
|
85
|
+
*
|
|
86
|
+
* @returns {ReferenceValueSetter|undefined} Reference value setter or undefined if not present.
|
|
87
|
+
*/
|
|
88
|
+
get referenceValueSetter(): ReferenceValueSetter | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* Gets custom data.
|
|
91
|
+
*
|
|
92
|
+
* @returns {CustomData} Custom data.
|
|
93
|
+
*/
|
|
94
|
+
get customData(): CustomData;
|
|
95
|
+
/**
|
|
96
|
+
* Gets serialized null value.
|
|
97
|
+
*
|
|
98
|
+
* @returns {any|undefined} Resolved serialized null value or undefined.
|
|
99
|
+
*/
|
|
100
|
+
get serializedNullValue(): any | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* Gets serialized default value.
|
|
103
|
+
*
|
|
104
|
+
* @returns {any|undefined} Resolved serialized default value or undefined.
|
|
105
|
+
*/
|
|
106
|
+
get serializedDefaultValue(): any | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Gets deserialized null value.
|
|
109
|
+
*
|
|
110
|
+
* @returns {any|undefined} Resolved deserialized null value or undefined.
|
|
111
|
+
*/
|
|
112
|
+
get deserializedNullValue(): any | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Gets deserialized default value.
|
|
115
|
+
*
|
|
116
|
+
* @returns {any|undefined} Resolved deserialized default value or undefined.
|
|
117
|
+
*/
|
|
118
|
+
get deserializedDefaultValue(): any | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* Gets json path from serializer context root.
|
|
121
|
+
*
|
|
122
|
+
* @returns {string} Json path.
|
|
123
|
+
*/
|
|
124
|
+
get jsonPath(): string;
|
|
125
|
+
/**
|
|
126
|
+
* Gets discriminant.
|
|
127
|
+
*
|
|
128
|
+
* @returns {Discriminant} Discriminant.
|
|
129
|
+
*/
|
|
130
|
+
get discriminant(): Discriminant;
|
|
131
|
+
/**
|
|
132
|
+
* Gets discriminant map.
|
|
133
|
+
*
|
|
134
|
+
* @returns {Map<TypeFn<any>, Discriminant>} Discriminant map.
|
|
135
|
+
*/
|
|
136
|
+
get discriminantMap(): Map<TypeFn<any>, Discriminant>;
|
|
137
|
+
/**
|
|
138
|
+
* Gets discriminator.
|
|
139
|
+
*
|
|
140
|
+
* @returns {Discriminator} Discriminator.
|
|
141
|
+
*/
|
|
142
|
+
get discriminator(): Discriminator;
|
|
143
|
+
/**
|
|
144
|
+
* Gets factory.
|
|
145
|
+
*
|
|
146
|
+
* @returns {Factory} Factory.
|
|
147
|
+
*/
|
|
148
|
+
get factory(): Factory;
|
|
149
|
+
/**
|
|
150
|
+
* Gets generic arguments.
|
|
151
|
+
*
|
|
152
|
+
* @returns {Array<GenericArgument<any>>|undefined} Generic arguments or undefined.
|
|
153
|
+
*/
|
|
154
|
+
get genericArguments(): Array<GenericArgument<any>> | undefined;
|
|
155
|
+
/**
|
|
156
|
+
* Gets generic metadatas.
|
|
157
|
+
*
|
|
158
|
+
* @returns {Array<GenericMetadata<any>>|undefined} Generic metadatas.
|
|
159
|
+
*/
|
|
160
|
+
get genericMetadatas(): Array<GenericMetadata<any>> | undefined;
|
|
161
|
+
/**
|
|
162
|
+
* Gets injector.
|
|
163
|
+
*
|
|
164
|
+
* @returns {Injector} Injector
|
|
165
|
+
*/
|
|
166
|
+
get injector(): Injector;
|
|
167
|
+
/**
|
|
168
|
+
* Gets log.
|
|
169
|
+
*
|
|
170
|
+
* @returns {Log} Log instance.
|
|
171
|
+
*/
|
|
172
|
+
get log(): Log;
|
|
173
|
+
/**
|
|
174
|
+
* Gets context name.
|
|
175
|
+
*
|
|
176
|
+
* @returns {string} Context name.
|
|
177
|
+
*/
|
|
178
|
+
get name(): string;
|
|
179
|
+
/**
|
|
180
|
+
* Gets naming convention.
|
|
181
|
+
*
|
|
182
|
+
* @returns {NamingConvention|undefined} Naming convention or undefined.
|
|
183
|
+
*/
|
|
184
|
+
get namingConvention(): NamingConvention | undefined;
|
|
185
|
+
/**
|
|
186
|
+
* Gets indicator if context is polymorphic.
|
|
187
|
+
*
|
|
188
|
+
* @returns {boolean} True when context is polymorphic. False otherwise.
|
|
189
|
+
*/
|
|
190
|
+
get polymorphic(): boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Gets property metadata.
|
|
193
|
+
*
|
|
194
|
+
* @returns {PropertyMetadata<any, TType>|undefined} Property metadata or undefined.
|
|
195
|
+
*/
|
|
196
|
+
get propertyMetadata(): PropertyMetadata<any, TType> | undefined;
|
|
197
|
+
/**
|
|
198
|
+
* Gets indicator if discriminator should be preserved.
|
|
199
|
+
*
|
|
200
|
+
* @returns {boolean} True when discriminator should be preserved. False otherwise.
|
|
201
|
+
*/
|
|
202
|
+
get preserveDiscriminator(): boolean;
|
|
203
|
+
/**
|
|
204
|
+
* Gets reference handler.
|
|
205
|
+
*
|
|
206
|
+
* @returns {ReferenceHandler} Reference handler.
|
|
207
|
+
*/
|
|
208
|
+
get referenceHandler(): ReferenceHandler;
|
|
209
|
+
/**
|
|
210
|
+
* Gets serializer.
|
|
211
|
+
*
|
|
212
|
+
* @returns {Serializer<TType>} Serializer.
|
|
213
|
+
*/
|
|
214
|
+
get serializer(): Serializer<TType>;
|
|
215
|
+
/**
|
|
216
|
+
* Gets type metadata.
|
|
217
|
+
*
|
|
218
|
+
* @returns {TypeMetadata<TType>} Type metadata.
|
|
219
|
+
*/
|
|
220
|
+
get typeMetadata(): TypeMetadata<TType>;
|
|
221
|
+
/**
|
|
222
|
+
* Gets indicator if null value should be preserved.
|
|
223
|
+
*
|
|
224
|
+
* @returns {boolean} True when null value should be preserved. False otherwise.
|
|
225
|
+
*/
|
|
226
|
+
get preserveNull(): boolean;
|
|
227
|
+
/**
|
|
228
|
+
* Gets indicator if default value should be used.
|
|
229
|
+
*
|
|
230
|
+
* @returns {boolean} True when type should use default value. False otherwise.
|
|
231
|
+
*/
|
|
232
|
+
get useDefaultValue(): boolean;
|
|
233
|
+
/**
|
|
234
|
+
* Gets indicator if implicit conversion should be used.
|
|
235
|
+
*
|
|
236
|
+
* @returns {boolean} True when type should use implicit conversion. False otherwise.
|
|
237
|
+
*/
|
|
238
|
+
get useImplicitConversion(): boolean;
|
|
239
|
+
/**
|
|
240
|
+
* Serializes provided value using context.
|
|
241
|
+
*
|
|
242
|
+
* @param {TypeLike<TType>} x Some value.
|
|
243
|
+
*
|
|
244
|
+
* @returns {TypeLike<any>} Value serialized by context.
|
|
245
|
+
*/
|
|
246
|
+
serialize(x: TypeLike<TType>): TypeLike<any>;
|
|
247
|
+
/**
|
|
248
|
+
* Deserializes provided value using context.
|
|
249
|
+
*
|
|
250
|
+
* @param {TypeLike<any>} x Some value.
|
|
251
|
+
*
|
|
252
|
+
* @returns {TypeLike<TType>} Value deserialized by context.
|
|
253
|
+
*/
|
|
254
|
+
deserialize(x: TypeLike<any>): TypeLike<TType>;
|
|
255
|
+
/**
|
|
256
|
+
* Defines reference.
|
|
257
|
+
*
|
|
258
|
+
* May be called during serialization to define reference.
|
|
259
|
+
*
|
|
260
|
+
* @param {ReferenceKey} referenceKey Reference key.
|
|
261
|
+
* @param {ReferenceValueGetter} referenceValueGetter Reference value getter.
|
|
262
|
+
*
|
|
263
|
+
* @returns {ReferenceValue} Reference value.
|
|
264
|
+
*/
|
|
265
|
+
defineReference(referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
266
|
+
/**
|
|
267
|
+
* Restores reference.
|
|
268
|
+
*
|
|
269
|
+
* May be called during deserialization to restore reference.
|
|
270
|
+
*
|
|
271
|
+
* @param {ReferenceKey} referenceKey Reference key.
|
|
272
|
+
* @param {ReferenceValueGetter} referenceValueGetter Reference value getter.
|
|
273
|
+
*
|
|
274
|
+
* @returns {ReferenceValue} Reference value.
|
|
275
|
+
*/
|
|
276
|
+
restoreReference(referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
277
|
+
/**
|
|
278
|
+
* Registers callback for provided reference key.
|
|
279
|
+
*
|
|
280
|
+
* May be called by reference handlers to register a callback resolver for a circular reference.
|
|
281
|
+
*
|
|
282
|
+
* @param {ReferenceKey} referenceKey Reference key.
|
|
283
|
+
*
|
|
284
|
+
* @returns {void}
|
|
285
|
+
*/
|
|
286
|
+
registerReferenceCallback(referenceKey: ReferenceKey): void;
|
|
287
|
+
/**
|
|
288
|
+
* Pushes callback for provided reference key.
|
|
289
|
+
*
|
|
290
|
+
* Called by reference handlers during handling of circular references.
|
|
291
|
+
*
|
|
292
|
+
* @param {ReferenceKey} referenceKey Reference key.
|
|
293
|
+
* @param {ReferenceCallback} referenceCallback Reference callback.
|
|
294
|
+
*
|
|
295
|
+
* @returns {void}
|
|
296
|
+
*/
|
|
297
|
+
pushReferenceCallback(referenceKey: ReferenceKey, referenceCallback: ReferenceCallback): void;
|
|
298
|
+
/**
|
|
299
|
+
* Resolves callbacks for provided reference key.
|
|
300
|
+
*
|
|
301
|
+
* May be called by reference handlers when circular references can be resolved.
|
|
302
|
+
*
|
|
303
|
+
* @param {ReferenceKey} referenceKey Reference key.
|
|
304
|
+
*
|
|
305
|
+
* @returns {void}
|
|
306
|
+
*/
|
|
307
|
+
resolveReferenceCallbacks(referenceKey: ReferenceKey): void;
|
|
308
|
+
/**
|
|
309
|
+
* Defines serializer context options based on partial.
|
|
310
|
+
*
|
|
311
|
+
* @param {Partial<SerializerContextOptions<any>>} serializerContextOptions Partial serializer context options.
|
|
312
|
+
*
|
|
313
|
+
* @returns {SerializerContextOptions<any>} Complete serializer context options.
|
|
314
|
+
*/
|
|
315
|
+
private defineSerializerContextOptions;
|
|
316
|
+
/**
|
|
317
|
+
* Defines child serializer context.
|
|
318
|
+
*
|
|
319
|
+
* Called by serializers on drill down.
|
|
320
|
+
*
|
|
321
|
+
* @param {Partial<SerializerContextOptions<any>>} childSerializerContextOptions Child serializer context options.
|
|
322
|
+
*
|
|
323
|
+
* @returns {SerializerContext<any>} Child serializer context.
|
|
324
|
+
*/
|
|
325
|
+
defineChildSerializerContext(childSerializerContextOptions: Partial<SerializerContextOptions<any>>): SerializerContext<any>;
|
|
326
|
+
/**
|
|
327
|
+
* Defines generic serializer context.
|
|
328
|
+
*
|
|
329
|
+
* Called by serializers which work with generics.
|
|
330
|
+
*
|
|
331
|
+
* @param {number} genericIndex Generic index.
|
|
332
|
+
*
|
|
333
|
+
* @returns {SerializerContext<any>} Generic serializer context.
|
|
334
|
+
*/
|
|
335
|
+
defineGenericSerializerContext(genericIndex: number): SerializerContext<any>;
|
|
336
|
+
/**
|
|
337
|
+
* Defines polymorphic serializer context.
|
|
338
|
+
*
|
|
339
|
+
* Called by serializers which work with polymorphic types.
|
|
340
|
+
*
|
|
341
|
+
* @param {TypeFn<any>|Record<string, any>} x Type function or record.
|
|
342
|
+
*
|
|
343
|
+
* @returns {SerializerContext<any>} Polymorphic serializer context.
|
|
344
|
+
*/
|
|
345
|
+
definePolymorphicSerializerContext(x: TypeFn<any> | Record<string, any>): SerializerContext<any>;
|
|
346
|
+
/**
|
|
347
|
+
* Defines polymorphic serializer context by type function.
|
|
348
|
+
*
|
|
349
|
+
* @param {TypeFn<any>} typeFn Type function.
|
|
350
|
+
*
|
|
351
|
+
* @returns {SerializerContext<any>} Polymorphic serializer context.
|
|
352
|
+
*/
|
|
353
|
+
private definePolymorphicSerializerContextByTypeFn;
|
|
354
|
+
/**
|
|
355
|
+
* Defines polymorphic serializer context by discriminant.
|
|
356
|
+
*
|
|
357
|
+
* @param {Record<string, any>} record Some record.
|
|
358
|
+
*
|
|
359
|
+
* @returns {SerializerContext<any>} Polymorphic serializer context.
|
|
360
|
+
*/
|
|
361
|
+
private definePolymorphicSerializerContextByDiscriminant;
|
|
362
|
+
/**
|
|
363
|
+
* Configures json path key.
|
|
364
|
+
*
|
|
365
|
+
* @param {string|number} jsonPathKey Json path key.
|
|
366
|
+
*
|
|
367
|
+
* @returns {SerializerContext<TType>} Current instance of serializer context.
|
|
368
|
+
*/
|
|
369
|
+
configureJsonPathKey(jsonPathKey: string | number): SerializerContext<TType>;
|
|
370
|
+
/**
|
|
371
|
+
* Configures reference value setter.
|
|
372
|
+
*
|
|
373
|
+
* @param {ReferenceValueSetter} referenceValueSetter Reference value setter.
|
|
374
|
+
*
|
|
375
|
+
* @returns {SerializerContext<TType>} Current instance of serializer context.
|
|
376
|
+
*/
|
|
377
|
+
configureReferenceValueSetter(referenceValueSetter: ReferenceValueSetter): SerializerContext<TType>;
|
|
378
|
+
/**
|
|
379
|
+
* Configures generic arguments.
|
|
380
|
+
*
|
|
381
|
+
* @param {Array<GenericArgument<any>>|undefined} genericArguments Generic arguments.
|
|
382
|
+
*
|
|
383
|
+
* @returns {SerializerContext<TType>} Current instance of serializer context.
|
|
384
|
+
*/
|
|
385
|
+
configureGenericArguments(genericArguments: Array<GenericArgument<any>> | undefined): SerializerContext<TType>;
|
|
386
|
+
/**
|
|
387
|
+
* Configures property metadata
|
|
388
|
+
*
|
|
389
|
+
* @param {PropertyMetadata<any,TType>} propertyMetadata Property metadata.
|
|
390
|
+
*
|
|
391
|
+
* @returns {SerializerContext<TType>} Current instance of serializer context.
|
|
392
|
+
*/
|
|
393
|
+
configurePropertyMetadata(propertyMetadata: PropertyMetadata<any, TType>): SerializerContext<TType>;
|
|
394
|
+
/**
|
|
395
|
+
* Configures type metadata
|
|
396
|
+
*
|
|
397
|
+
* @param {TypeMetadata<TType>} typeMetadata Type metadata.
|
|
398
|
+
*
|
|
399
|
+
* @returns {SerializerContext<TType>} Current instance of serializer context.
|
|
400
|
+
*/
|
|
401
|
+
configureTypeMetadata(typeMetadata: TypeMetadata<TType>): SerializerContext<TType>;
|
|
402
|
+
/**
|
|
403
|
+
* Configures serializer context based on provided options.
|
|
404
|
+
*
|
|
405
|
+
* @param {SerializerContextOptions<TType>} serializerContextOptions Serializer context options.
|
|
406
|
+
*
|
|
407
|
+
* @returns {SerializerContext<TType>} Current instance of serializer context.
|
|
408
|
+
*/
|
|
409
|
+
configure(serializerContextOptions: SerializerContextOptions<TType>): SerializerContext<TType>;
|
|
410
|
+
}
|