Skip to content

Commit 0e6998f

Browse files
Create OneOfInterface for OneOfModels
1 parent 6b1b5cc commit 0e6998f

4 files changed

Lines changed: 16 additions & 9 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ public TypeScriptClientCodegen() {
174174
// models
175175
setModelPackage("models");
176176
supportingFiles.add(new SupportingFile("model" + File.separator + "ObjectSerializer.mustache", "models", "ObjectSerializer.ts"));
177+
supportingFiles.add(new SupportingFile("model" + File.separator + "OneOfInterface.mustache", "models", "OneOfInterface.ts"));
177178
modelTemplateFiles.put("model" + File.separator + "model.mustache", ".ts");
178179

179180
// api
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export interface OneOfInterface {
2+
findMatchingType(): string | undefined;
3+
}

modules/openapi-generator/src/main/resources/typescript/model/model.mustache

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@
44
{{#tsImports}}
55
import { {{classname}} } from '{{filename}}{{importFileExtension}}';
66
{{/tsImports}}
7+
{{#oneOf}}
8+
{{#-first}}
9+
import { OneOfInterface } from '../models/OneOfInterface{{importFileExtension}}'
10+
{{/-first}}
11+
{{/oneOf}}
12+
{{^oneOf}}
713
import { HttpFile } from '../http/http{{importFileExtension}}';
14+
{{/oneOf}}
815

916
{{#description}}
1017
/**

modules/openapi-generator/src/main/resources/typescript/model/modelOneOf.mustache

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
{{#hasImports}}
2-
import {
3-
{{#imports}}
4-
{{{.}}}{{importFileExtension}},
5-
{{/imports}}
6-
} from './';
7-
8-
{{/hasImports}}
91
/**
102
* @type {{classname}}
113
* Type
@@ -18,7 +10,7 @@ export type {{classname}} = {{#oneOf}}{{{.}}}{{^-last}} | {{/-last}}{{/oneOf}};
1810
* {{{.}}}{{/description}}
1911
* @export
2012
*/
21-
export class {{classname}}Class {
13+
export class {{classname}}Class implements OneOfInterface {
2214
{{#discriminator}}
2315
static readonly discriminator: string | undefined = "{{discriminatorName}}";
2416
{{/discriminator}}
@@ -37,4 +29,8 @@ export class {{classname}}Class {
3729

3830
static readonly mapping: {[index: string]: string} | undefined = undefined;
3931
{{/hasDiscriminatorWithNonEmptyMapping}}
32+
33+
findMatchingType(): string | undefined {
34+
return undefined;
35+
}
4036
}

0 commit comments

Comments
 (0)