[typescript-fetch] fix serialization/deserialization with inheritance (#3767)

* #3646 - fix inheritence

* #3646: Fix imports

* Update modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache

Co-Authored-By: Esteban Gehring <esteban.gehring@gmail.com>

* generate typeescript-fetch samples
This commit is contained in:
stephanpelikan
2019-08-28 13:10:45 +02:00
committed by Esteban Gehring
parent 31d7bf9d18
commit 28cf0b279d
38 changed files with 478 additions and 0 deletions

View File

@@ -12,6 +12,10 @@ export enum {{classname}} {
}
export function {{classname}}FromJSON(json: any): {{classname}} {
return {{classname}}FromJSONTyped(json, false);
}
export function {{classname}}FromJSONTyped(json: any, ignoreDiscriminator: boolean): {{classname}} {
return json as {{classname}};
}

View File

@@ -4,11 +4,20 @@ import {
{{#imports}}
{{{.}}},
{{.}}FromJSON,
{{.}}FromJSONTyped,
{{.}}ToJSON,
{{/imports}}
} from './';
{{/hasImports}}
{{#discriminator}}
import {
{{#discriminator.mappedModels}}
{{modelName}}FromJSONTyped
{{/discriminator.mappedModels}}
} from './';
{{/discriminator}}
/**
* {{{description}}}
* @export
@@ -29,8 +38,25 @@ export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
}
export function {{classname}}FromJSON(json: any): {{classname}} {
return {{classname}}FromJSONTyped(json, false);
}
export function {{classname}}FromJSONTyped(json: any, ignoreDiscriminator: boolean): {{classname}} {
{{#hasVars}}
if ((json === undefined) || (json === null)) {
return json;
}
{{#discriminator}}
if (!ignoreDiscriminator) {
{{#discriminator.mappedModels}}
if (json['{{discriminator.propertyName}}'] === '{{modelName}}') {
return {{modelName}}FromJSONTyped(json, true);
}
{{/discriminator.mappedModels}}
}
{{/discriminator}}
return {
{{#parent}}...{{{parent}}}FromJSONTyped(json, ignoreDiscriminator),{{/parent}}
{{#additionalPropertiesType}}
...json,
{{/additionalPropertiesType}}
@@ -79,7 +105,11 @@ export function {{classname}}ToJSON(value?: {{classname}}): any {
if (value === undefined) {
return undefined;
}
if (value === null) {
return null;
}
return {
{{#parent}}...{{{parent}}}ToJSON(value),{{/parent}}
{{#additionalPropertiesType}}
...value,
{{/additionalPropertiesType}}