@@ -3,6 +3,10 @@ import {
33 {{#imports} }
44 { {{.} }},
55 { {/imports} }
6+ { {#oneOf} }
7+ { {{.} }}FromJSONTyped,
8+ { {{.} }}ToJSON,
9+ { {/oneOf} }
610} from './';
711
812{ {/hasImports} }
@@ -11,4 +15,49 @@ import {
1115 * { {{description} }}{ {/description} }
1216 * @export
1317 */
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