improve ts node enum naming

This commit is contained in:
wing328 2016-07-14 17:14:06 +08:00
parent 748f4b21f4
commit 4f52cebf7a
6 changed files with 35 additions and 27 deletions

View File

@ -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 {

View File

@ -35,8 +35,12 @@ export class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
export namespace {{classname}} {
{{#vars}}
{{#isEnum}}
export enum {{datatypeWithEnum}} { {{#allowableValues}}{{#values}}
{{datatypeWithEnum}}_{{.}} = <any> '{{.}}'{{^-last}},{{/-last}}{{/values}}{{/allowableValues}}
export enum {{datatypeWithEnum}} {
{{#allowableValues}}
{{#enumVars}}
{{name}} = <any> {{{value}}}{{^-last}},{{/-last}}
{{/enumVars}}
{{/allowableValues}}
}
{{/isEnum}}
{{/vars}}

View File

@ -52,10 +52,10 @@ export class Order {
}
export namespace Order {
export enum StatusEnum {
StatusEnum_placed = <any> 'placed',
StatusEnum_approved = <any> 'approved',
StatusEnum_delivered = <any> 'delivered'
export enum StatusEnum {
Placed = <any> 'placed',
Approved = <any> 'approved',
Delivered = <any> 'delivered'
}
}
export class Pet {
@ -71,10 +71,10 @@ export class Pet {
}
export namespace Pet {
export enum StatusEnum {
StatusEnum_available = <any> 'available',
StatusEnum_pending = <any> 'pending',
StatusEnum_sold = <any> 'sold'
export enum StatusEnum {
Available = <any> 'available',
Pending = <any> 'pending',
Sold = <any> 'sold'
}
}
export class Tag {

View File

@ -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 {

View File

@ -52,10 +52,10 @@ export class Order {
}
export namespace Order {
export enum StatusEnum {
StatusEnum_placed = <any> 'placed',
StatusEnum_approved = <any> 'approved',
StatusEnum_delivered = <any> 'delivered'
export enum StatusEnum {
Placed = <any> 'placed',
Approved = <any> 'approved',
Delivered = <any> 'delivered'
}
}
export class Pet {
@ -71,10 +71,10 @@ export class Pet {
}
export namespace Pet {
export enum StatusEnum {
StatusEnum_available = <any> 'available',
StatusEnum_pending = <any> 'pending',
StatusEnum_sold = <any> 'sold'
export enum StatusEnum {
Available = <any> 'available',
Pending = <any> 'pending',
Sold = <any> 'sold'
}
}
export class Tag {

View File

@ -25,7 +25,7 @@ petApi.addPet(pet)
var newPet = <api.Pet>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");
}
})