From 4aabae33e79859cc336218a909fedaaa58a674a1 Mon Sep 17 00:00:00 2001 From: ksvirkou Date: Tue, 22 Feb 2022 16:15:17 +0300 Subject: [PATCH 1/5] fix addImport method --- .../org/openapitools/codegen/DefaultCodegen.java | 4 ++-- .../codegen/languages/TypeScriptClientCodegen.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) 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 76ec33626275..dae79bad3cdf 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 @@ -5148,13 +5148,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 f6fa5c0050d6..edbdd8dc0227 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 @@ -1577,6 +1577,19 @@ protected void addImport(CodegenModel m, String type) { } } + protected void addImport(Set importsToBeAddedTo, String type) { + if (type == null) { + return; + } + + String[] parts = type.split("( [|&] )|[<>]"); + for (String s : parts) { + if (shouldAddImport(s)) { + importsToBeAddedTo.add(s); + } + } + } + @Override public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.TYPESCRIPT; } } From 1c1850185ad3fccb0b1ff77e867fa47d82d5c38a Mon Sep 17 00:00:00 2001 From: ksvirkou Date: Wed, 23 Feb 2022 12:59:06 +0300 Subject: [PATCH 2/5] add function splitComposedType --- .../codegen/languages/TypeScriptClientCodegen.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 edbdd8dc0227..269e56f53cd6 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 @@ -1569,7 +1569,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); @@ -1577,19 +1577,24 @@ protected void addImport(CodegenModel m, String type) { } } + @Override protected void addImport(Set importsToBeAddedTo, String type) { if (type == null) { return; } - String[] parts = type.split("( [|&] )|[<>]"); + String[] parts = splitComposedType(type); for (String s : parts) { - if (shouldAddImport(s)) { + if (super.shouldAddImport(s)) { importsToBeAddedTo.add(s); } } } + protected String[] splitComposedType (String name) { + return name.replace(" ","").split("[|&<>]"); + } + @Override public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.TYPESCRIPT; } } From dbeba0ffa629a1861350db8baee3ae53c3ac4b71 Mon Sep 17 00:00:00 2001 From: ksvirkou Date: Wed, 23 Feb 2022 13:16:11 +0300 Subject: [PATCH 3/5] super.addImport --- .../codegen/languages/TypeScriptClientCodegen.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 269e56f53cd6..d17ff7e8f3d2 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 @@ -1585,9 +1585,7 @@ protected void addImport(Set importsToBeAddedTo, String type) { String[] parts = splitComposedType(type); for (String s : parts) { - if (super.shouldAddImport(s)) { - importsToBeAddedTo.add(s); - } + super.addImport(importsToBeAddedTo, s); } } From 664f5a640fe5f07302e79859e9d5ee38ea4617f3 Mon Sep 17 00:00:00 2001 From: ksvirkou Date: Wed, 23 Feb 2022 15:37:46 +0300 Subject: [PATCH 4/5] add docs for splitComposedType --- .../codegen/languages/TypeScriptClientCodegen.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 d17ff7e8f3d2..846ca4de53d2 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 @@ -1589,8 +1589,15 @@ protected void addImport(Set importsToBeAddedTo, String type) { } } - protected String[] splitComposedType (String name) { - return name.replace(" ","").split("[|&<>]"); + /** + * Split composed types + * e.g. TheFirstType | TheSecondType to TheFirstType and TheSecondType + * + * @param String with composed types + * @return list of types + */ + protected String[] splitComposedType(String type) { + return type.replace(" ","").split("[|&<>]"); } @Override From b66cf7239810107d81243cb444ebf5d0053d484d Mon Sep 17 00:00:00 2001 From: ksvirkou Date: Wed, 23 Feb 2022 15:49:31 +0300 Subject: [PATCH 5/5] add docs for splitComposedType --- .../openapitools/codegen/languages/TypeScriptClientCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 846ca4de53d2..e1b5ee32ea70 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 @@ -1593,7 +1593,7 @@ protected void addImport(Set importsToBeAddedTo, String type) { * Split composed types * e.g. TheFirstType | TheSecondType to TheFirstType and TheSecondType * - * @param String with composed types + * @param type String with composed types * @return list of types */ protected String[] splitComposedType(String type) {