@dipscope/type-manager 5.0.0-beta.0 → 5.0.0-beta.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.
- package/CHANGELOG.md +2 -0
- package/README.md +20 -1
- package/index.d.ts +2 -2
- package/index.js +1 -1
- package/inject-options.d.ts +2 -2
- package/package.json +1 -1
- package/property-metadata.d.ts +18 -0
- package/property-options.d.ts +9 -2
- package/reference-callback.d.ts +1 -1
- package/reference-handler.d.ts +7 -8
- package/reference-handlers/direct-reference-handler.d.ts +7 -8
- package/reference-handlers/lead-reference-handler.d.ts +7 -8
- package/reference-handlers/path-reference-handler.d.ts +7 -8
- package/reference-value-getter.d.ts +7 -0
- package/reference-value-setter.d.ts +7 -0
- package/serializer-context-options.d.ts +13 -33
- package/serializer-context.d.ts +110 -44
- package/serializers/map-serializer.d.ts +12 -0
- package/type-manager-options.d.ts +2 -2
- package/type-metadata.d.ts +24 -6
- package/type-options-base.d.ts +9 -2
- package/type-options.d.ts +2 -2
- package/reference-value-initializer.d.ts +0 -8
- package/reference-value-resolver.d.ts +0 -8
package/inject-options.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { TypeFn } from './type-fn';
|
|
|
4
4
|
*
|
|
5
5
|
* @type {InjectOptions<TType>}
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export declare type InjectOptions<TType> = {
|
|
8
8
|
/**
|
|
9
9
|
* Parameter key to inject within a type context. If specified then
|
|
10
10
|
* type function will be ignored.
|
|
@@ -19,4 +19,4 @@ export interface InjectOptions<TType> {
|
|
|
19
19
|
* @type {TypeFn<TType>}
|
|
20
20
|
*/
|
|
21
21
|
typeFn?: TypeFn<TType>;
|
|
22
|
-
}
|
|
22
|
+
};
|
package/package.json
CHANGED
package/property-metadata.d.ts
CHANGED
|
@@ -63,12 +63,24 @@ export declare class PropertyMetadata<TDeclaringType, TType> extends Metadata {
|
|
|
63
63
|
* @returns {CustomData} Custom data.
|
|
64
64
|
*/
|
|
65
65
|
get customData(): CustomData;
|
|
66
|
+
/**
|
|
67
|
+
* Gets serialized null value.
|
|
68
|
+
*
|
|
69
|
+
* @returns {any|undefined} Resolved serialized null value or undefined.
|
|
70
|
+
*/
|
|
71
|
+
get serializedNullValue(): any | undefined;
|
|
66
72
|
/**
|
|
67
73
|
* Gets serialized default value.
|
|
68
74
|
*
|
|
69
75
|
* @returns {any|undefined} Resolved serialized default value or undefined.
|
|
70
76
|
*/
|
|
71
77
|
get serializedDefaultValue(): any | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Gets deserialized null value.
|
|
80
|
+
*
|
|
81
|
+
* @returns {any|undefined} Resolved deserialized null value or undefined.
|
|
82
|
+
*/
|
|
83
|
+
get deserializedNullValue(): any | undefined;
|
|
72
84
|
/**
|
|
73
85
|
* Gets deserialized default value.
|
|
74
86
|
*
|
|
@@ -147,6 +159,12 @@ export declare class PropertyMetadata<TDeclaringType, TType> extends Metadata {
|
|
|
147
159
|
* @returns {TypeMetadata<TType>} Type metadata.
|
|
148
160
|
*/
|
|
149
161
|
get typeMetadata(): TypeMetadata<TType>;
|
|
162
|
+
/**
|
|
163
|
+
* Gets indicator if null value should be preserved.
|
|
164
|
+
*
|
|
165
|
+
* @returns {boolean} True when null value should be preserved. False otherwise.
|
|
166
|
+
*/
|
|
167
|
+
get preserveNull(): boolean;
|
|
150
168
|
/**
|
|
151
169
|
* Gets indicator if default value should be used.
|
|
152
170
|
*
|
package/property-options.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { TypeArgument } from './type-argument';
|
|
|
11
11
|
*
|
|
12
12
|
* @type {PropertyOptions<TType>}
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export declare type PropertyOptions<TType> = {
|
|
15
15
|
/**
|
|
16
16
|
* Property alias.
|
|
17
17
|
*
|
|
@@ -93,6 +93,13 @@ export interface PropertyOptions<TType> {
|
|
|
93
93
|
* @type {TypeArgument<TType>}
|
|
94
94
|
*/
|
|
95
95
|
typeArgument?: TypeArgument<TType>;
|
|
96
|
+
/**
|
|
97
|
+
* If set to true then null values are preserved. Otherwise they will be
|
|
98
|
+
* treated as undefined.
|
|
99
|
+
*
|
|
100
|
+
* @type {boolean}
|
|
101
|
+
*/
|
|
102
|
+
preserveNull?: boolean;
|
|
96
103
|
/**
|
|
97
104
|
* Use default value assignment for undefined values?
|
|
98
105
|
*
|
|
@@ -106,4 +113,4 @@ export interface PropertyOptions<TType> {
|
|
|
106
113
|
* @type {boolean}
|
|
107
114
|
*/
|
|
108
115
|
useImplicitConversion?: boolean;
|
|
109
|
-
}
|
|
116
|
+
};
|
package/reference-callback.d.ts
CHANGED
package/reference-handler.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ReferenceKey } from './reference-key';
|
|
2
2
|
import { ReferenceValue } from './reference-value';
|
|
3
|
-
import {
|
|
4
|
-
import { ReferenceValueResolver } from './reference-value-resolver';
|
|
3
|
+
import { ReferenceValueGetter } from './reference-value-getter';
|
|
5
4
|
import { SerializerContext } from './serializer-context';
|
|
6
5
|
/**
|
|
7
6
|
* Reference handler to resolve object references.
|
|
@@ -14,19 +13,19 @@ export interface ReferenceHandler {
|
|
|
14
13
|
*
|
|
15
14
|
* @param {SerializerContext<any>} serializerContext Serializer context.
|
|
16
15
|
* @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a serializing object.
|
|
17
|
-
* @param {
|
|
16
|
+
* @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key.
|
|
18
17
|
*
|
|
19
|
-
* @returns {ReferenceValue
|
|
18
|
+
* @returns {ReferenceValue} Resolved reference value.
|
|
20
19
|
*/
|
|
21
|
-
define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey,
|
|
20
|
+
define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
22
21
|
/**
|
|
23
22
|
* Restores reference. Called during deserialization.
|
|
24
23
|
*
|
|
25
24
|
* @param {SerializerContext<any>} serializerContext Serializer context.
|
|
26
25
|
* @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a deserializing object.
|
|
27
|
-
* @param {
|
|
26
|
+
* @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key.
|
|
28
27
|
*
|
|
29
|
-
* @returns {ReferenceValue
|
|
28
|
+
* @returns {ReferenceValue} Resolved reference value.
|
|
30
29
|
*/
|
|
31
|
-
restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey,
|
|
30
|
+
restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
32
31
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ReferenceHandler } from '../reference-handler';
|
|
2
2
|
import { ReferenceKey } from '../reference-key';
|
|
3
3
|
import { ReferenceValue } from '../reference-value';
|
|
4
|
-
import {
|
|
5
|
-
import { ReferenceValueResolver } from '../reference-value-resolver';
|
|
4
|
+
import { ReferenceValueGetter } from '../reference-value-getter';
|
|
6
5
|
import { SerializerContext } from '../serializer-context';
|
|
7
6
|
/**
|
|
8
7
|
* Direct reference handler which preserves references as is.
|
|
@@ -15,19 +14,19 @@ export declare class DirectReferenceHandler implements ReferenceHandler {
|
|
|
15
14
|
*
|
|
16
15
|
* @param {SerializerContext<any>} serializerContext Serializer context.
|
|
17
16
|
* @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a serializing object.
|
|
18
|
-
* @param {
|
|
17
|
+
* @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key.
|
|
19
18
|
*
|
|
20
|
-
* @returns {ReferenceValue
|
|
19
|
+
* @returns {ReferenceValue} Resolved reference value.
|
|
21
20
|
*/
|
|
22
|
-
define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey,
|
|
21
|
+
define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
23
22
|
/**
|
|
24
23
|
* Restores reference. Called during deserialization.
|
|
25
24
|
*
|
|
26
25
|
* @param {SerializerContext<any>} serializerContext Serializer context.
|
|
27
26
|
* @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a deserializing object.
|
|
28
|
-
* @param {
|
|
27
|
+
* @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key.
|
|
29
28
|
*
|
|
30
|
-
* @returns {ReferenceValue
|
|
29
|
+
* @returns {ReferenceValue} Resolved reference value.
|
|
31
30
|
*/
|
|
32
|
-
restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey,
|
|
31
|
+
restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
33
32
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ReferenceHandler } from '../reference-handler';
|
|
2
2
|
import { ReferenceKey } from '../reference-key';
|
|
3
3
|
import { ReferenceValue } from '../reference-value';
|
|
4
|
-
import {
|
|
5
|
-
import { ReferenceValueResolver } from '../reference-value-resolver';
|
|
4
|
+
import { ReferenceValueGetter } from '../reference-value-getter';
|
|
6
5
|
import { SerializerContext } from '../serializer-context';
|
|
7
6
|
/**
|
|
8
7
|
* Lead reference handler preserves references except circular. If circular reference is detected the it will
|
|
@@ -16,19 +15,19 @@ export declare class LeadReferenceHandler implements ReferenceHandler {
|
|
|
16
15
|
*
|
|
17
16
|
* @param {SerializerContext<any>} serializerContext Serializer context.
|
|
18
17
|
* @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a serializing object.
|
|
19
|
-
* @param {
|
|
18
|
+
* @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key.
|
|
20
19
|
*
|
|
21
|
-
* @returns {ReferenceValue
|
|
20
|
+
* @returns {ReferenceValue} Resolved reference value.
|
|
22
21
|
*/
|
|
23
|
-
define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey,
|
|
22
|
+
define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
24
23
|
/**
|
|
25
24
|
* Restores reference. Called during deserialization.
|
|
26
25
|
*
|
|
27
26
|
* @param {SerializerContext<any>} serializerContext Serializer context.
|
|
28
27
|
* @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a deserializing object.
|
|
29
|
-
* @param {
|
|
28
|
+
* @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key.
|
|
30
29
|
*
|
|
31
|
-
* @returns {ReferenceValue
|
|
30
|
+
* @returns {ReferenceValue} Resolved reference value.
|
|
32
31
|
*/
|
|
33
|
-
restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey,
|
|
32
|
+
restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
34
33
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ReferenceHandler } from '../reference-handler';
|
|
2
2
|
import { ReferenceKey } from '../reference-key';
|
|
3
3
|
import { ReferenceValue } from '../reference-value';
|
|
4
|
-
import {
|
|
5
|
-
import { ReferenceValueResolver } from '../reference-value-resolver';
|
|
4
|
+
import { ReferenceValueGetter } from '../reference-value-getter';
|
|
6
5
|
import { SerializerContext } from '../serializer-context';
|
|
7
6
|
/**
|
|
8
7
|
* Path reference handler preserves references using JSONPath.
|
|
@@ -21,21 +20,21 @@ export declare class PathReferenceHandler implements ReferenceHandler {
|
|
|
21
20
|
*
|
|
22
21
|
* @param {SerializerContext<any>} serializerContext Serializer context.
|
|
23
22
|
* @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a serializing object.
|
|
24
|
-
* @param {
|
|
23
|
+
* @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key.
|
|
25
24
|
*
|
|
26
|
-
* @returns {ReferenceValue
|
|
25
|
+
* @returns {ReferenceValue} Resolved reference value.
|
|
27
26
|
*/
|
|
28
|
-
define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey,
|
|
27
|
+
define(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
29
28
|
/**
|
|
30
29
|
* Restores reference. Called during deserialization.
|
|
31
30
|
*
|
|
32
31
|
* @param {SerializerContext<any>} serializerContext Serializer context.
|
|
33
32
|
* @param {ReferenceKey} referenceKey Reference which acts as a key. This is basically a deserializing object.
|
|
34
|
-
* @param {
|
|
33
|
+
* @param {ReferenceValueGetter} referenceValueGetter Function to get a reference value when one is not yet present for a key.
|
|
35
34
|
*
|
|
36
|
-
* @returns {ReferenceValue
|
|
35
|
+
* @returns {ReferenceValue} Resolved reference value.
|
|
37
36
|
*/
|
|
38
|
-
restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey,
|
|
37
|
+
restore(serializerContext: SerializerContext<any>, referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
39
38
|
/**
|
|
40
39
|
* Defines reference target based on reference key.
|
|
41
40
|
*
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReferenceValue } from './reference-value';
|
|
2
|
+
/**
|
|
3
|
+
* Callback to set a reference value when one may be resolved for a reference key.
|
|
4
|
+
*
|
|
5
|
+
* @type {ReferenceValueSetter}
|
|
6
|
+
*/
|
|
7
|
+
export declare type ReferenceValueSetter = (referenceValue: ReferenceValue) => void;
|
|
@@ -1,63 +1,43 @@
|
|
|
1
1
|
import { GenericArgument } from './generic-argument';
|
|
2
2
|
import { PropertyMetadata } from './property-metadata';
|
|
3
|
-
import {
|
|
4
|
-
import { ReferenceKey } from './reference-key';
|
|
5
|
-
import { ReferenceValue } from './reference-value';
|
|
3
|
+
import { ReferenceValueSetter } from './reference-value-setter';
|
|
6
4
|
import { TypeMetadata } from './type-metadata';
|
|
7
5
|
/**
|
|
8
6
|
* Serializer context options.
|
|
9
7
|
*
|
|
10
8
|
* @type {SerializerContextOptions<TType>}
|
|
11
9
|
*/
|
|
12
|
-
export
|
|
10
|
+
export declare type SerializerContextOptions<TType> = {
|
|
13
11
|
/**
|
|
14
|
-
*
|
|
12
|
+
* Json path key of current serializer context. It equals to $ for
|
|
13
|
+
* root serializer context. Read about JSONPath for more info.
|
|
15
14
|
*
|
|
16
|
-
*
|
|
15
|
+
* @type {string|number}
|
|
16
|
+
*/
|
|
17
|
+
jsonPathKey: string | number;
|
|
18
|
+
/**
|
|
19
|
+
* Reference value setter if serialization may result in circular dependency
|
|
20
|
+
* which must be resolved.
|
|
17
21
|
*
|
|
18
|
-
* @type {
|
|
22
|
+
* @type {ReferenceValueSetter}
|
|
19
23
|
*/
|
|
20
|
-
|
|
24
|
+
referenceValueSetter?: ReferenceValueSetter;
|
|
21
25
|
/**
|
|
22
26
|
* Generic arguments.
|
|
23
27
|
*
|
|
24
28
|
* @type {Array<GenericArgument<any>>}
|
|
25
29
|
*/
|
|
26
30
|
genericArguments?: Array<GenericArgument<any>>;
|
|
27
|
-
/**
|
|
28
|
-
* JSONPath from serializer context root.
|
|
29
|
-
*
|
|
30
|
-
* Indicates a place where serialization is performed.
|
|
31
|
-
*
|
|
32
|
-
* @type {string}
|
|
33
|
-
*/
|
|
34
|
-
path: string;
|
|
35
31
|
/**
|
|
36
32
|
* Property metadata.
|
|
37
33
|
*
|
|
38
34
|
* @type {PropertyMetadata<any, TType>}
|
|
39
35
|
*/
|
|
40
36
|
propertyMetadata?: PropertyMetadata<any, TType>;
|
|
41
|
-
/**
|
|
42
|
-
* Reference callback map.
|
|
43
|
-
*
|
|
44
|
-
* Used to assign object references in a later time due to circular dependency.
|
|
45
|
-
*
|
|
46
|
-
* @type {WeakMap<ReferenceKey, Array<ReferenceCallback>>}
|
|
47
|
-
*/
|
|
48
|
-
referenceCallbackMap: WeakMap<ReferenceKey, Array<ReferenceCallback>>;
|
|
49
|
-
/**
|
|
50
|
-
* Reference map.
|
|
51
|
-
*
|
|
52
|
-
* Used to preserve object references.
|
|
53
|
-
*
|
|
54
|
-
* @type {WeakMap<ReferenceKey, ReferenceValue>}
|
|
55
|
-
*/
|
|
56
|
-
referenceMap: WeakMap<ReferenceKey, ReferenceValue>;
|
|
57
37
|
/**
|
|
58
38
|
* Type metadata.
|
|
59
39
|
*
|
|
60
40
|
* @type {TypeMetadata<TType>}
|
|
61
41
|
*/
|
|
62
42
|
typeMetadata: TypeMetadata<TType>;
|
|
63
|
-
}
|
|
43
|
+
};
|
package/serializer-context.d.ts
CHANGED
|
@@ -13,8 +13,8 @@ import { ReferenceCallback } from './reference-callback';
|
|
|
13
13
|
import { ReferenceHandler } from './reference-handler';
|
|
14
14
|
import { ReferenceKey } from './reference-key';
|
|
15
15
|
import { ReferenceValue } from './reference-value';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
16
|
+
import { ReferenceValueGetter } from './reference-value-getter';
|
|
17
|
+
import { ReferenceValueSetter } from './reference-value-setter';
|
|
18
18
|
import { Serializer } from './serializer';
|
|
19
19
|
import { SerializerContextOptions } from './serializer-context-options';
|
|
20
20
|
import { TypeFn } from './type-fn';
|
|
@@ -26,42 +26,102 @@ import { TypeMetadata } from './type-metadata';
|
|
|
26
26
|
* @type {SerializerContext<TType>}
|
|
27
27
|
*/
|
|
28
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>>;
|
|
29
53
|
/**
|
|
30
54
|
* Serializer context options.
|
|
31
55
|
*
|
|
32
56
|
* @type {SerializerContext<TType>}
|
|
33
57
|
*/
|
|
34
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>;
|
|
35
67
|
/**
|
|
36
68
|
* Constructor.
|
|
37
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.
|
|
38
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.
|
|
39
81
|
*/
|
|
40
|
-
|
|
82
|
+
get jsonPathKey(): any;
|
|
41
83
|
/**
|
|
42
|
-
* Gets
|
|
84
|
+
* Gets reference value setter.
|
|
43
85
|
*
|
|
44
|
-
* @returns {
|
|
86
|
+
* @returns {ReferenceValueSetter|undefined} Reference value setter or undefined if not present.
|
|
45
87
|
*/
|
|
46
|
-
get
|
|
88
|
+
get referenceValueSetter(): ReferenceValueSetter | undefined;
|
|
47
89
|
/**
|
|
48
90
|
* Gets custom data.
|
|
49
91
|
*
|
|
50
92
|
* @returns {CustomData} Custom data.
|
|
51
93
|
*/
|
|
52
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;
|
|
53
101
|
/**
|
|
54
102
|
* Gets serialized default value.
|
|
55
103
|
*
|
|
56
104
|
* @returns {any|undefined} Resolved serialized default value or undefined.
|
|
57
105
|
*/
|
|
58
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;
|
|
59
113
|
/**
|
|
60
114
|
* Gets deserialized default value.
|
|
61
115
|
*
|
|
62
116
|
* @returns {any|undefined} Resolved deserialized default value or undefined.
|
|
63
117
|
*/
|
|
64
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;
|
|
65
125
|
/**
|
|
66
126
|
* Gets discriminant.
|
|
67
127
|
*
|
|
@@ -122,12 +182,6 @@ export declare class SerializerContext<TType> extends Metadata {
|
|
|
122
182
|
* @returns {NamingConvention|undefined} Naming convention or undefined.
|
|
123
183
|
*/
|
|
124
184
|
get namingConvention(): NamingConvention | undefined;
|
|
125
|
-
/**
|
|
126
|
-
* Gets JSONPath from serializer context root.
|
|
127
|
-
*
|
|
128
|
-
* @returns {string} Path.
|
|
129
|
-
*/
|
|
130
|
-
get path(): string;
|
|
131
185
|
/**
|
|
132
186
|
* Gets indicator if context is polymorphic.
|
|
133
187
|
*
|
|
@@ -152,18 +206,6 @@ export declare class SerializerContext<TType> extends Metadata {
|
|
|
152
206
|
* @returns {ReferenceHandler} Reference handler.
|
|
153
207
|
*/
|
|
154
208
|
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
209
|
/**
|
|
168
210
|
* Gets serializer.
|
|
169
211
|
*
|
|
@@ -176,6 +218,12 @@ export declare class SerializerContext<TType> extends Metadata {
|
|
|
176
218
|
* @returns {TypeMetadata<TType>} Type metadata.
|
|
177
219
|
*/
|
|
178
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;
|
|
179
227
|
/**
|
|
180
228
|
* Gets indicator if default value should be used.
|
|
181
229
|
*
|
|
@@ -210,26 +258,36 @@ export declare class SerializerContext<TType> extends Metadata {
|
|
|
210
258
|
* May be called during serialization to define reference.
|
|
211
259
|
*
|
|
212
260
|
* @param {ReferenceKey} referenceKey Reference key.
|
|
213
|
-
* @param {
|
|
261
|
+
* @param {ReferenceValueGetter} referenceValueGetter Reference value getter.
|
|
214
262
|
*
|
|
215
|
-
* @returns {ReferenceValue
|
|
263
|
+
* @returns {ReferenceValue} Reference value.
|
|
216
264
|
*/
|
|
217
|
-
defineReference(referenceKey: ReferenceKey,
|
|
265
|
+
defineReference(referenceKey: ReferenceKey, referenceValueGetter: ReferenceValueGetter): ReferenceValue;
|
|
218
266
|
/**
|
|
219
267
|
* Restores reference.
|
|
220
268
|
*
|
|
221
269
|
* May be called during deserialization to restore reference.
|
|
222
270
|
*
|
|
223
271
|
* @param {ReferenceKey} referenceKey Reference key.
|
|
224
|
-
* @param {
|
|
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.
|
|
225
283
|
*
|
|
226
|
-
* @returns {
|
|
284
|
+
* @returns {void}
|
|
227
285
|
*/
|
|
228
|
-
|
|
286
|
+
registerReferenceCallback(referenceKey: ReferenceKey): void;
|
|
229
287
|
/**
|
|
230
288
|
* Pushes callback for provided reference key.
|
|
231
289
|
*
|
|
232
|
-
* Called by
|
|
290
|
+
* Called by reference handlers during handling of circular references.
|
|
233
291
|
*
|
|
234
292
|
* @param {ReferenceKey} referenceKey Reference key.
|
|
235
293
|
* @param {ReferenceCallback} referenceCallback Reference callback.
|
|
@@ -240,19 +298,27 @@ export declare class SerializerContext<TType> extends Metadata {
|
|
|
240
298
|
/**
|
|
241
299
|
* Resolves callbacks for provided reference key.
|
|
242
300
|
*
|
|
243
|
-
*
|
|
301
|
+
* May be called by reference handlers when circular references can be resolved.
|
|
244
302
|
*
|
|
245
303
|
* @param {ReferenceKey} referenceKey Reference key.
|
|
246
304
|
*
|
|
247
305
|
* @returns {void}
|
|
248
306
|
*/
|
|
249
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;
|
|
250
316
|
/**
|
|
251
317
|
* Defines child serializer context.
|
|
252
318
|
*
|
|
253
|
-
* Called by serializers on
|
|
319
|
+
* Called by serializers on drill down.
|
|
254
320
|
*
|
|
255
|
-
* @param {Partial<SerializerContextOptions<any>>} childSerializerContextOptions
|
|
321
|
+
* @param {Partial<SerializerContextOptions<any>>} childSerializerContextOptions Child serializer context options.
|
|
256
322
|
*
|
|
257
323
|
* @returns {SerializerContext<any>} Child serializer context.
|
|
258
324
|
*/
|
|
@@ -267,6 +333,16 @@ export declare class SerializerContext<TType> extends Metadata {
|
|
|
267
333
|
* @returns {SerializerContext<any>} Generic serializer context.
|
|
268
334
|
*/
|
|
269
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>;
|
|
270
346
|
/**
|
|
271
347
|
* Defines polymorphic serializer context by type function.
|
|
272
348
|
*
|
|
@@ -283,14 +359,4 @@ export declare class SerializerContext<TType> extends Metadata {
|
|
|
283
359
|
* @returns {SerializerContext<any>} Polymorphic serializer context.
|
|
284
360
|
*/
|
|
285
361
|
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
362
|
}
|
|
@@ -7,6 +7,18 @@ import { TypeLike } from '../type-like';
|
|
|
7
7
|
* @type {MapSerializer}
|
|
8
8
|
*/
|
|
9
9
|
export declare class MapSerializer implements Serializer<Map<any, any>> {
|
|
10
|
+
/**
|
|
11
|
+
* Map serializer key.
|
|
12
|
+
*
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
static readonly key: string;
|
|
16
|
+
/**
|
|
17
|
+
* Map serializer value.
|
|
18
|
+
*
|
|
19
|
+
* @type {string}
|
|
20
|
+
*/
|
|
21
|
+
static readonly value: string;
|
|
10
22
|
/**
|
|
11
23
|
* Serializes provided value.
|
|
12
24
|
*
|
|
@@ -6,7 +6,7 @@ import { TypeOptionsBase } from './type-options-base';
|
|
|
6
6
|
*
|
|
7
7
|
* @type {TypeManagerOptions}
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare type TypeManagerOptions = {
|
|
10
10
|
/**
|
|
11
11
|
* Global type options shared among all types.
|
|
12
12
|
*
|
|
@@ -21,4 +21,4 @@ export interface TypeManagerOptions {
|
|
|
21
21
|
* @type {Map<TypeFn<any>, TypeOptions<any>>}
|
|
22
22
|
*/
|
|
23
23
|
typeOptionsMap?: Map<TypeFn<any>, TypeOptions<any>>;
|
|
24
|
-
}
|
|
24
|
+
};
|