From 4f52cebf7a9058b4f66a2c996564b9a537207966 Mon Sep 17 00:00:00 2001 From: wing328 Date: Thu, 14 Jul 2016 17:14:06 +0800 Subject: [PATCH] improve ts node enum naming --- .../AbstractTypeScriptClientCodegen.java | 6 +++++- .../main/resources/typescript-node/api.mustache | 8 ++++++-- .../petstore/typescript-node/default/api.ts | 16 ++++++++-------- .../client/petstore/typescript-node/npm/api.d.ts | 12 ++++++------ .../client/petstore/typescript-node/npm/api.ts | 16 ++++++++-------- .../petstore/typescript-node/npm/client.ts | 4 ++-- 6 files changed, 35 insertions(+), 27 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java index 2435516f0f6..3a0d836fafb 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -276,10 +276,14 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp } // string - String enumName = sanitizeName(underscore(name).toUpperCase()); + String enumName = sanitizeName(name); enumName = enumName.replaceFirst("^_", ""); enumName = enumName.replaceFirst("_$", ""); + // camelize the enum variable name + // ref: https://basarat.gitbooks.io/typescript/content/docs/enums.html + enumName = camelize(enumName); + if (enumName.matches("\\d.*")) { // starts with number return "_" + enumName; } else { diff --git a/modules/swagger-codegen/src/main/resources/typescript-node/api.mustache b/modules/swagger-codegen/src/main/resources/typescript-node/api.mustache index 38c1fa34458..3ecb12e24f5 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-node/api.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-node/api.mustache @@ -35,8 +35,12 @@ export class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{ export namespace {{classname}} { {{#vars}} {{#isEnum}} - export enum {{datatypeWithEnum}} { {{#allowableValues}}{{#values}} - {{datatypeWithEnum}}_{{.}} = '{{.}}'{{^-last}},{{/-last}}{{/values}}{{/allowableValues}} + export enum {{datatypeWithEnum}} { + {{#allowableValues}} + {{#enumVars}} + {{name}} = {{{value}}}{{^-last}},{{/-last}} + {{/enumVars}} + {{/allowableValues}} } {{/isEnum}} {{/vars}} diff --git a/samples/client/petstore/typescript-node/default/api.ts b/samples/client/petstore/typescript-node/default/api.ts index 102b6774f81..02128e1699e 100644 --- a/samples/client/petstore/typescript-node/default/api.ts +++ b/samples/client/petstore/typescript-node/default/api.ts @@ -52,10 +52,10 @@ export class Order { } export namespace Order { - export enum StatusEnum { - StatusEnum_placed = 'placed', - StatusEnum_approved = 'approved', - StatusEnum_delivered = 'delivered' + export enum StatusEnum { + Placed = 'placed', + Approved = 'approved', + Delivered = 'delivered' } } export class Pet { @@ -71,10 +71,10 @@ export class Pet { } export namespace Pet { - export enum StatusEnum { - StatusEnum_available = 'available', - StatusEnum_pending = 'pending', - StatusEnum_sold = 'sold' + export enum StatusEnum { + Available = 'available', + Pending = 'pending', + Sold = 'sold' } } export class Tag { diff --git a/samples/client/petstore/typescript-node/npm/api.d.ts b/samples/client/petstore/typescript-node/npm/api.d.ts index 2399bc3a4f5..5422eb9b29f 100644 --- a/samples/client/petstore/typescript-node/npm/api.d.ts +++ b/samples/client/petstore/typescript-node/npm/api.d.ts @@ -15,9 +15,9 @@ export declare class Order { } export declare namespace Order { enum StatusEnum { - StatusEnum_placed, - StatusEnum_approved, - StatusEnum_delivered, + Placed, + Approved, + Delivered, } } export declare class Pet { @@ -30,9 +30,9 @@ export declare class Pet { } export declare namespace Pet { enum StatusEnum { - StatusEnum_available, - StatusEnum_pending, - StatusEnum_sold, + Available, + Pending, + Sold, } } export declare class Tag { diff --git a/samples/client/petstore/typescript-node/npm/api.ts b/samples/client/petstore/typescript-node/npm/api.ts index 102b6774f81..02128e1699e 100644 --- a/samples/client/petstore/typescript-node/npm/api.ts +++ b/samples/client/petstore/typescript-node/npm/api.ts @@ -52,10 +52,10 @@ export class Order { } export namespace Order { - export enum StatusEnum { - StatusEnum_placed = 'placed', - StatusEnum_approved = 'approved', - StatusEnum_delivered = 'delivered' + export enum StatusEnum { + Placed = 'placed', + Approved = 'approved', + Delivered = 'delivered' } } export class Pet { @@ -71,10 +71,10 @@ export class Pet { } export namespace Pet { - export enum StatusEnum { - StatusEnum_available = 'available', - StatusEnum_pending = 'pending', - StatusEnum_sold = 'sold' + export enum StatusEnum { + Available = 'available', + Pending = 'pending', + Sold = 'sold' } } export class Tag { diff --git a/samples/client/petstore/typescript-node/npm/client.ts b/samples/client/petstore/typescript-node/npm/client.ts index 488057b9500..79b8737c92b 100644 --- a/samples/client/petstore/typescript-node/npm/client.ts +++ b/samples/client/petstore/typescript-node/npm/client.ts @@ -25,7 +25,7 @@ petApi.addPet(pet) var newPet = res.body; petId = newPet.id; console.log(`Created pet with ID ${petId}`); - newPet.status = api.Pet.StatusEnum.StatusEnum_available; + newPet.status = api.Pet.StatusEnum.Available; return petApi.updatePet(newPet); }) .then((res) => { @@ -42,7 +42,7 @@ petApi.addPet(pet) }) .then((res) => { console.log('Got pet by ID: ' + JSON.stringify(res.body)); - if (res.body.status != api.Pet.StatusEnum.StatusEnum_pending) { + if (res.body.status != api.Pet.StatusEnum.Pending) { throw new Error("Unexpected pet status"); } })