From 20bd649bf9a79ebadec6a992e454e064cd5b6129 Mon Sep 17 00:00:00 2001 From: linxin1019 <131460615+linxin1019@users.noreply.github.com> Date: Mon, 11 Mar 2024 00:28:33 +0900 Subject: [PATCH] Add enum name mapping feature to typescript generators (#18064) * feat: add enum mapping for typescript * revert unnecessary change --- bin/configs/typescript-angular-v16-provided-in-root.yaml | 2 ++ .../codegen/languages/AbstractTypeScriptClientCodegen.java | 4 ++++ .../builds/default/model/order.ts | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/configs/typescript-angular-v16-provided-in-root.yaml b/bin/configs/typescript-angular-v16-provided-in-root.yaml index 058eb78206b4..40c1796662bb 100644 --- a/bin/configs/typescript-angular-v16-provided-in-root.yaml +++ b/bin/configs/typescript-angular-v16-provided-in-root.yaml @@ -5,3 +5,5 @@ templateDir: modules/openapi-generator/src/main/resources/typescript-angular additionalProperties: ngVersion: 16.1.2 supportsES6: true +enumNameMappings: + delivered: SHIPPED diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java index 10cfdd80cc10..1bfae967efa3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -888,6 +888,10 @@ public String toEnumDefaultValue(String value, String datatype) { @Override public String toEnumVarName(String name, String datatype) { + if (enumNameMapping.containsKey(name)) { + return enumNameMapping.get(name); + } + if (name.length() == 0) { return getNameUsingEnumPropertyNaming("empty"); } diff --git a/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/model/order.ts b/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/model/order.ts index a29bebe49065..92ca5e9a9ee0 100644 --- a/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/model/order.ts +++ b/samples/client/petstore/typescript-angular-v16-provided-in-root/builds/default/model/order.ts @@ -30,7 +30,7 @@ export namespace Order { export const StatusEnum = { Placed: 'placed' as StatusEnum, Approved: 'approved' as StatusEnum, - Delivered: 'delivered' as StatusEnum + SHIPPED: 'delivered' as StatusEnum }; }