diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index fdf55a2b8375..dcb273d9a0a8 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -5156,13 +5156,13 @@ protected void addImport(CodegenModel m, String type) { addImport(m.imports, type); } - private void addImport(Set importsToBeAddedTo, String type) { + protected void addImport(Set importsToBeAddedTo, String type) { if (shouldAddImport(type)) { importsToBeAddedTo.add(type); } } - private boolean shouldAddImport(String type) { + protected boolean shouldAddImport(String type) { return type != null && needToImport(type); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java index d7a2af88dfe1..3d84fb3c948c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java @@ -1568,7 +1568,7 @@ protected void addImport(CodegenModel m, String type) { return; } - String[] parts = type.split("( [|&] )|[<>]"); + String[] parts = splitComposedType(type); for (String s : parts) { if (needToImport(s)) { m.imports.add(s); @@ -1576,6 +1576,29 @@ protected void addImport(CodegenModel m, String type) { } } + @Override + protected void addImport(Set importsToBeAddedTo, String type) { + if (type == null) { + return; + } + + String[] parts = splitComposedType(type); + for (String s : parts) { + super.addImport(importsToBeAddedTo, s); + } + } + + /** + * Split composed types + * e.g. TheFirstType | TheSecondType to TheFirstType and TheSecondType + * + * @param type String with composed types + * @return list of types + */ + protected String[] splitComposedType(String type) { + return type.replace(" ","").split("[|&<>]"); + } + @Override public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.TYPESCRIPT; } }