diff --git a/modules/openapi-generator/src/main/resources/typescript-axios/model.mustache b/modules/openapi-generator/src/main/resources/typescript-axios/model.mustache index 9e1e84422bce92745c0af71cbabc747666040b9a..22ec75ac4f14a723ed5c966a7ce4ca248163a452 100644 --- a/modules/openapi-generator/src/main/resources/typescript-axios/model.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-axios/model.mustache @@ -12,5 +12,5 @@ import { {{class}} } from './{{filename}}';{{/oneOf}}{{/hasOneOf}}{{^hasAllOf}}{ // @ts-ignore import { {{class}} } from './{{filename}}';{{/imports}}{{/hasOneOf}}{{/hasAllOf}}{{/withSeparateModelsAndApi}} {{#models}}{{#model}} -{{#isEnum}}{{>modelEnum}}{{/isEnum}}{{#oneOf}}{{#-first}}{{>modelOneOf}}{{/-first}}{{/oneOf}}{{#allOf}}{{#-first}}{{>modelAllOf}}{{/-first}}{{/allOf}}{{^isEnum}}{{^oneOf}}{{^allOf}}{{>modelGeneric}}{{/allOf}}{{/oneOf}}{{/isEnum}} +{{#isEnum}}{{>modelEnum}}{{/isEnum}}{{#oneOf}}{{#-first}}{{>modelOneOf}}{{/-first}}{{/oneOf}}{{#allOf}}{{#-first}}{{>modelAllOf}}{{/-first}}{{/allOf}}{{#anyOf}}{{#-first}}{{>modelAnyOf}}{{/-first}}{{/anyOf}}{{^isEnum}}{{^oneOf}}{{^allOf}}{{^anyOf}}{{>modelGeneric}}{{/anyOf}}{{/allOf}}{{/oneOf}}{{/isEnum}} {{/model}}{{/models}} diff --git a/modules/openapi-generator/src/main/resources/typescript-axios/modelAnyOf.mustache b/modules/openapi-generator/src/main/resources/typescript-axios/modelAnyOf.mustache new file mode 100644 index 0000000000000000000000000000000000000000..db7042253c9062647aa199f7870022e7fa80cad4 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/typescript-axios/modelAnyOf.mustache @@ -0,0 +1,15 @@ +/** + * @type {{classname}}{{#description}} + * {{{.}}}{{/description}} + * @export + */ +export type {{classname}} = {{#discriminator}}{{! + +discriminator with mapped models - TypeScript discriminating union +}}{{#mappedModels}}{ {{discriminator.propertyName}}: '{{mappingName}}' } & {{modelName}}{{^-last}} | {{/-last}}{{/mappedModels}}{{! + +discriminator only - fallback to not use the discriminator. Default model names are available but possibility of having null/nullable values could introduce more edge cases +}}{{^mappedModels}}{{#anyOf}}{{{.}}}{{^-last}} | {{/-last}}{{/anyOf}}{{/mappedModels}}{{/discriminator}}{{! + +plain anyOf +}}{{^discriminator}}{{#anyOf}}{{{.}}}{{^-last}} | {{/-last}}{{/anyOf}}{{/discriminator}};