github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/typescript-fetch/modelOneOf.mustache (about) 1 {{#hasImports}} 2 import { 3 {{#imports}} 4 {{{.}}}, 5 {{/imports}} 6 {{#oneOf}} 7 {{{.}}}FromJSONTyped, 8 {{{.}}}ToJSON, 9 {{/oneOf}} 10 } from './'; 11 12 {{/hasImports}} 13 /** 14 * @type {{classname}}{{#description}} 15 * {{{description}}}{{/description}} 16 * @export 17 */ 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 }