@@ -3,6 +3,10 @@ import {
3
3
{{#imports} }
4
4
{ {{.} }},
5
5
{ {/imports} }
6
+ { {#oneOf} }
7
+ { {{.} }}FromJSONTyped,
8
+ { {{.} }}ToJSON,
9
+ { {/oneOf} }
6
10
} from './';
7
11
8
12
{ {/hasImports} }
@@ -11,4 +15,49 @@ import {
11
15
* { {{description} }}{ {/description} }
12
16
* @export
13
17
*/
14
- export type { {classname} } = { {#oneOf} }{ {{.} }}{ {^-last} } | { {/-last} }{ {/oneOf} };
18
+ export type { {classname} } = { {#discriminator} }{ {#mappedModels} }{ {{discriminator.propertyName} }: '{ {mappingName} }' } & { {modelName} }{ {^-last} } | { {/-last} }{ {/mappedModels} }{ {/discriminator} }{ {^discriminator} }{ {#oneOf} }{ {{.} }}{ {^-last} } | { {/-last} }{ {/oneOf} }{ {/discriminator} };
19
+
20
+ export function { {classname} }FromJSON(json: any): { {classname} } {
21
+ return {{classname} }FromJSONTyped(json, false);
22
+ }
23
+
24
+ export function { {classname} }FromJSONTyped(json: any, ignoreDiscriminator: boolean): { {classname} } {
25
+ if ((json === undefined) || (json === null)) {
26
+ return json;
27
+ }
28
+ { {#discriminator} }
29
+ switch (json['{ {discriminator.propertyName} }']) {
30
+ {{#discriminator.mappedModels} }
31
+ case '{ {mappingName} }':
32
+ return { ...{{modelName} }FromJSONTyped(json, true), { {discriminator.propertyName} }: '{ {mappingName} }'};
33
+ { {/discriminator.mappedModels} }
34
+ default:
35
+ throw new Error(`No variant of { {classname} } exists with '{ {discriminator.propertyName} }=${ json[' {{discriminator.propertyName}}' ]} '`);
36
+ }
37
+ { {/discriminator} }
38
+ { {^discriminator} }
39
+ return { {{#oneOf} }...{ {{.} }}FromJSONTyped(json, true){ {^-last} }, { {/-last} }{ {/oneOf} } };
40
+ { {/discriminator} }
41
+ }
42
+
43
+ export function { {classname} }ToJSON(value?: { {classname} } | null): any {
44
+ if (value === undefined) {
45
+ return undefined;
46
+ }
47
+ if (value === null) {
48
+ return null;
49
+ }
50
+ { {#discriminator} }
51
+ switch (value['{ {discriminator.propertyName} }']) {
52
+ {{#discriminator.mappedModels} }
53
+ case '{ {mappingName} }':
54
+ return { {modelName} }ToJSON(value);
55
+ { {/discriminator.mappedModels} }
56
+ default:
57
+ throw new Error(`No variant of { {classname} } exists with '{ {discriminator.propertyName} }=${ value[' {{discriminator.propertyName}}' ]} '`);
58
+ }
59
+ { {/discriminator} }
60
+ { {^discriminator} }
61
+ return { {{#oneOf} }...{ {{.} }}ToJSON(value){ {^-last} }, { {/-last} }{ {/oneOf} } };
62
+ { {/discriminator} }
63
+ }
0 commit comments