-
Notifications
You must be signed in to change notification settings - Fork 510
/
Copy pathindex.ts
159 lines (146 loc) · 6.5 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
import { ClassTransformer } from './ClassTransformer';
import { ClassTransformOptions } from './interfaces';
import { ClassConstructor } from './interfaces';
export { ClassTransformer } from './ClassTransformer';
export * from './decorators';
export * from './interfaces';
export * from './enums';
const classTransformer = new ClassTransformer();
/**
* Converts class (constructor) object to plain (literal) object. Also works with arrays.
*
* @deprecated Function name changed, use the `instanceToPlain` method instead.
*/
export function classToPlain<T>(object: T, options?: ClassTransformOptions): Record<string, any>;
export function classToPlain<T>(object: T[], options?: ClassTransformOptions): Record<string, any>[];
export function classToPlain<T>(
object: T | T[],
options?: ClassTransformOptions
): Record<string, any> | Record<string, any>[] {
return classTransformer.instanceToPlain(object, options);
}
/**
* Converts class (constructor) object to plain (literal) object. Also works with arrays.
*/
export function instanceToPlain<T>(object: T, options?: ClassTransformOptions): Record<string, any>;
export function instanceToPlain<T>(object: T[], options?: ClassTransformOptions): Record<string, any>[];
export function instanceToPlain<T>(
object: T | T[],
options?: ClassTransformOptions
): Record<string, any> | Record<string, any>[] {
return classTransformer.instanceToPlain(object, options);
}
/**
* Converts class (constructor) object to plain (literal) object.
* Uses given plain object as source object (it means fills given plain object with data from class object).
* Also works with arrays.
*
* @deprecated This function is being removed.
*/
export function classToPlainFromExist<T>(
object: T,
plainObject: Record<string, any>,
options?: ClassTransformOptions
): Record<string, any>;
export function classToPlainFromExist<T>(
object: T,
plainObjects: Record<string, any>[],
options?: ClassTransformOptions
): Record<string, any>[];
export function classToPlainFromExist<T>(
object: T,
plainObject: Record<string, any> | Record<string, any>[],
options?: ClassTransformOptions
): Record<string, any> | Record<string, any>[] {
return classTransformer.classToPlainFromExist(object, plainObject, options);
}
/**
* Converts plain (literal) object to class (constructor) object. Also works with arrays.
*
* @deprecated Function name changed, use the `plainToInstance` method instead.
*/
export function plainToClass<T, V>(cls: ClassConstructor<T>, plain: V[], options?: ClassTransformOptions): T[];
export function plainToClass<T, V>(cls: ClassConstructor<T>, plain: V, options?: ClassTransformOptions): T;
export function plainToClass<T, V>(cls: ClassConstructor<T>, plain: V | V[], options?: ClassTransformOptions): T | T[] {
return classTransformer.plainToInstance(cls, plain as any, options);
}
/**
* Converts plain (literal) object to class (constructor) object. Also works with arrays.
*/
export function plainToInstance<T, V>(cls: ClassConstructor<T>, plain: V[], options?: ClassTransformOptions): T[];
export function plainToInstance<T, V>(cls: ClassConstructor<T>, plain: V, options?: ClassTransformOptions): T;
export function plainToInstance<T, V>(
cls: ClassConstructor<T>,
plain: V | V[],
options?: ClassTransformOptions
): T | T[] {
return classTransformer.plainToInstance(cls, plain as any, options);
}
/**
* Converts plain (literal) object to class (constructor) object.
* Uses given object as source object (it means fills given object with data from plain object).
* Also works with arrays.
*
* @deprecated This function is being removed. The current implementation is incorrect as it modifies the source object.
*/
export function plainToClassFromExist<T, V>(clsObject: T[], plain: V[], options?: ClassTransformOptions): T[];
export function plainToClassFromExist<T, V>(clsObject: T, plain: V, options?: ClassTransformOptions): T;
export function plainToClassFromExist<T, V>(clsObject: T, plain: V | V[], options?: ClassTransformOptions): T | T[] {
return classTransformer.plainToClassFromExist(clsObject, plain, options);
}
/**
* Converts class (constructor) object to new class (constructor) object. Also works with arrays.
*/
export function instanceToInstance<T>(object: T, options?: ClassTransformOptions): T;
export function instanceToInstance<T>(object: T[], options?: ClassTransformOptions): T[];
export function instanceToInstance<T>(object: T | T[], options?: ClassTransformOptions): T | T[] {
return classTransformer.instanceToInstance(object, options);
}
/**
* Converts class (constructor) object to plain (literal) object.
* Uses given plain object as source object (it means fills given plain object with data from class object).
* Also works with arrays.
*
* @deprecated This function is being removed. The current implementation is incorrect as it modifies the source object.
*/
export function classToClassFromExist<T>(object: T, fromObject: T, options?: ClassTransformOptions): T;
export function classToClassFromExist<T>(object: T, fromObjects: T[], options?: ClassTransformOptions): T[];
export function classToClassFromExist<T>(object: T, fromObject: T | T[], options?: ClassTransformOptions): T | T[] {
return classTransformer.classToClassFromExist(object, fromObject, options);
}
/**
* Serializes given object to a JSON string.
*
* @deprecated This function is being removed. Please use
* ```
* JSON.stringify(instanceToPlain(object, options))
* ```
*/
export function serialize<T>(object: T, options?: ClassTransformOptions): string;
export function serialize<T>(object: T[], options?: ClassTransformOptions): string;
export function serialize<T>(object: T | T[], options?: ClassTransformOptions): string {
return classTransformer.serialize(object, options);
}
/**
* Deserializes given JSON string to a object of the given class.
*
* @deprecated This function is being removed. Please use the following instead:
* ```
* instanceToClass(cls, JSON.parse(json), options)
* ```
*/
export function deserialize<T>(cls: ClassConstructor<T>, json: string, options?: ClassTransformOptions): T {
return classTransformer.deserialize(cls, json, options);
}
/**
* Deserializes given JSON string to an array of objects of the given class.
*
* @deprecated This function is being removed. Please use the following instead:
* ```
* JSON.parse(json).map(value => instanceToClass(cls, value, options))
* ```
*
*/
export function deserializeArray<T>(cls: ClassConstructor<T>, json: string, options?: ClassTransformOptions): T[] {
return classTransformer.deserializeArray(cls, json, options);
}