mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-12-20 15:37:10 +00:00
[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:
committed by
Esteban Gehring
parent
31d7bf9d18
commit
28cf0b279d
@@ -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}};
|
||||
}
|
||||
|
||||
|
||||
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user