forked from loafle/openapi-generator-original
Use string union for enums
This commit is contained in:
parent
a00e342505
commit
e11a5a9395
@ -546,14 +546,14 @@ public class TypeScriptClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
// name enum with model name, e.g. StatusEnum => Pet.StatusEnum
|
||||
for (CodegenProperty var : cm.vars) {
|
||||
if (Boolean.TRUE.equals(var.isEnum)) {
|
||||
var.datatypeWithEnum = var.datatypeWithEnum.replace(var.enumName, cm.classname + "." + var.enumName);
|
||||
var.datatypeWithEnum = var.datatypeWithEnum.replace(var.enumName, cm.classname + var.enumName);
|
||||
}
|
||||
}
|
||||
if (cm.parent != null) {
|
||||
for (CodegenProperty var : cm.allVars) {
|
||||
if (Boolean.TRUE.equals(var.isEnum)) {
|
||||
var.datatypeWithEnum = var.datatypeWithEnum
|
||||
.replace(var.enumName, cm.classname + "." + var.enumName);
|
||||
.replace(var.enumName, cm.classname + var.enumName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ export * from './{{{ classFilename }}}';
|
||||
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
import { {{classname}} } from './{{{ classFilename }}}';
|
||||
import { {{classname}}{{#hasEnums}}{{#vars}}{{#isEnum}}, {{classname}}{{enumName}} {{/isEnum}} {{/vars}}{{/hasEnums}} } from './{{{ classFilename }}}';
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
|
||||
@ -22,19 +22,19 @@ let primitives = [
|
||||
"any"
|
||||
];
|
||||
|
||||
let enumsMap: {[index: string]: any} = {
|
||||
let enumsMap: Set<string> = new Set<string>([
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
{{#hasEnums}}
|
||||
{{#vars}}
|
||||
{{#isEnum}}
|
||||
{{#isContainer}}"{{classname}}.{{enumName}}": {{classname}}.{{enumName}}{{/isContainer}}{{#isNotContainer}}"{{datatypeWithEnum}}": {{datatypeWithEnum}}{{/isNotContainer}},
|
||||
"{{classname}}{{enumName}}",
|
||||
{{/isEnum}}
|
||||
{{/vars}}
|
||||
{{/hasEnums}}
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
}
|
||||
]);
|
||||
|
||||
let typeMap: {[index: string]: any} = {
|
||||
{{#models}}
|
||||
@ -53,7 +53,7 @@ export class ObjectSerializer {
|
||||
} else if (expectedType === "Date") {
|
||||
return expectedType;
|
||||
} else {
|
||||
if (enumsMap[expectedType]) {
|
||||
if (enumsMap.has(expectedType)) {
|
||||
return expectedType;
|
||||
}
|
||||
|
||||
@ -97,7 +97,7 @@ export class ObjectSerializer {
|
||||
} else if (type === "Date") {
|
||||
return data.toISOString();
|
||||
} else {
|
||||
if (enumsMap[type]) {
|
||||
if (enumsMap.has(type)) {
|
||||
return data;
|
||||
}
|
||||
if (!typeMap[type]) { // in case we dont know the type
|
||||
@ -137,7 +137,7 @@ export class ObjectSerializer {
|
||||
} else if (type === "Date") {
|
||||
return new Date(data);
|
||||
} else {
|
||||
if (enumsMap[type]) {// is Enum
|
||||
if (enumsMap.has(type)) {// is Enum
|
||||
return data;
|
||||
}
|
||||
|
||||
|
@ -51,19 +51,13 @@ export class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
|
||||
}
|
||||
|
||||
{{#hasEnums}}
|
||||
export namespace {{classname}} {
|
||||
|
||||
{{#vars}}
|
||||
{{#isEnum}}
|
||||
export enum {{enumName}} {
|
||||
{{#allowableValues}}
|
||||
{{#enumVars}}
|
||||
{{name}} = <any> {{{value}}}{{^-last}},{{/-last}}
|
||||
{{/enumVars}}
|
||||
{{/allowableValues}}
|
||||
}
|
||||
export type {{classname}}{{enumName}} ={{#allowableValues}}{{#values}} "{{.}}" {{^-last}}|{{/-last}}{{/values}}{{/allowableValues}};
|
||||
{{/isEnum}}
|
||||
{{/vars}}
|
||||
}
|
||||
|
||||
{{/hasEnums}}
|
||||
{{/model}}
|
||||
{{/models}}
|
@ -19,7 +19,7 @@ export class PetApi {
|
||||
this.responseProcessor = new PetApiResponseProcessor();
|
||||
}
|
||||
|
||||
public addPet(pet: Pet, options?: any): Promise<void> {
|
||||
public addPet(pet: Pet, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.addPet(pet, options);
|
||||
|
||||
// build promise chain
|
||||
@ -38,7 +38,7 @@ export class PetApi {
|
||||
});
|
||||
}
|
||||
|
||||
public deletePet(petId: number, apiKey?: string, options?: any): Promise<void> {
|
||||
public deletePet(petId: number, apiKey?: string, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.deletePet(petId, apiKey, options);
|
||||
|
||||
// build promise chain
|
||||
@ -57,7 +57,7 @@ export class PetApi {
|
||||
});
|
||||
}
|
||||
|
||||
public findPetsByStatus(status: Array<'available' | 'pending' | 'sold'>, options?: any): Promise<Array<Pet>> {
|
||||
public findPetsByStatus(status: Array<'available' | 'pending' | 'sold'>, options?: Configuration): Promise<Array<Pet>> {
|
||||
const requestContext = this.requestFactory.findPetsByStatus(status, options);
|
||||
|
||||
// build promise chain
|
||||
@ -76,7 +76,7 @@ export class PetApi {
|
||||
});
|
||||
}
|
||||
|
||||
public findPetsByTags(tags: Array<string>, options?: any): Promise<Array<Pet>> {
|
||||
public findPetsByTags(tags: Array<string>, options?: Configuration): Promise<Array<Pet>> {
|
||||
const requestContext = this.requestFactory.findPetsByTags(tags, options);
|
||||
|
||||
// build promise chain
|
||||
@ -95,7 +95,7 @@ export class PetApi {
|
||||
});
|
||||
}
|
||||
|
||||
public getPetById(petId: number, options?: any): Promise<Pet> {
|
||||
public getPetById(petId: number, options?: Configuration): Promise<Pet> {
|
||||
const requestContext = this.requestFactory.getPetById(petId, options);
|
||||
|
||||
// build promise chain
|
||||
@ -114,7 +114,7 @@ export class PetApi {
|
||||
});
|
||||
}
|
||||
|
||||
public updatePet(pet: Pet, options?: any): Promise<void> {
|
||||
public updatePet(pet: Pet, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.updatePet(pet, options);
|
||||
|
||||
// build promise chain
|
||||
@ -133,7 +133,7 @@ export class PetApi {
|
||||
});
|
||||
}
|
||||
|
||||
public updatePetWithForm(petId: number, name?: string, status?: string, options?: any): Promise<void> {
|
||||
public updatePetWithForm(petId: number, name?: string, status?: string, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.updatePetWithForm(petId, name, status, options);
|
||||
|
||||
// build promise chain
|
||||
@ -152,7 +152,7 @@ export class PetApi {
|
||||
});
|
||||
}
|
||||
|
||||
public uploadFile(petId: number, additionalMetadata?: string, file?: HttpFile, options?: any): Promise<ApiResponse> {
|
||||
public uploadFile(petId: number, additionalMetadata?: string, file?: HttpFile, options?: Configuration): Promise<ApiResponse> {
|
||||
const requestContext = this.requestFactory.uploadFile(petId, additionalMetadata, file, options);
|
||||
|
||||
// build promise chain
|
||||
@ -187,7 +187,7 @@ export class StoreApi {
|
||||
this.responseProcessor = new StoreApiResponseProcessor();
|
||||
}
|
||||
|
||||
public deleteOrder(orderId: string, options?: any): Promise<void> {
|
||||
public deleteOrder(orderId: string, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.deleteOrder(orderId, options);
|
||||
|
||||
// build promise chain
|
||||
@ -206,7 +206,7 @@ export class StoreApi {
|
||||
});
|
||||
}
|
||||
|
||||
public getInventory(options?: any): Promise<{ [key: string]: number; }> {
|
||||
public getInventory(options?: Configuration): Promise<{ [key: string]: number; }> {
|
||||
const requestContext = this.requestFactory.getInventory(options);
|
||||
|
||||
// build promise chain
|
||||
@ -225,7 +225,7 @@ export class StoreApi {
|
||||
});
|
||||
}
|
||||
|
||||
public getOrderById(orderId: number, options?: any): Promise<Order> {
|
||||
public getOrderById(orderId: number, options?: Configuration): Promise<Order> {
|
||||
const requestContext = this.requestFactory.getOrderById(orderId, options);
|
||||
|
||||
// build promise chain
|
||||
@ -244,7 +244,7 @@ export class StoreApi {
|
||||
});
|
||||
}
|
||||
|
||||
public placeOrder(order: Order, options?: any): Promise<Order> {
|
||||
public placeOrder(order: Order, options?: Configuration): Promise<Order> {
|
||||
const requestContext = this.requestFactory.placeOrder(order, options);
|
||||
|
||||
// build promise chain
|
||||
@ -279,7 +279,7 @@ export class UserApi {
|
||||
this.responseProcessor = new UserApiResponseProcessor();
|
||||
}
|
||||
|
||||
public createUser(user: User, options?: any): Promise<void> {
|
||||
public createUser(user: User, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.createUser(user, options);
|
||||
|
||||
// build promise chain
|
||||
@ -298,7 +298,7 @@ export class UserApi {
|
||||
});
|
||||
}
|
||||
|
||||
public createUsersWithArrayInput(user: Array<User>, options?: any): Promise<void> {
|
||||
public createUsersWithArrayInput(user: Array<User>, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.createUsersWithArrayInput(user, options);
|
||||
|
||||
// build promise chain
|
||||
@ -317,7 +317,7 @@ export class UserApi {
|
||||
});
|
||||
}
|
||||
|
||||
public createUsersWithListInput(user: Array<User>, options?: any): Promise<void> {
|
||||
public createUsersWithListInput(user: Array<User>, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.createUsersWithListInput(user, options);
|
||||
|
||||
// build promise chain
|
||||
@ -336,7 +336,7 @@ export class UserApi {
|
||||
});
|
||||
}
|
||||
|
||||
public deleteUser(username: string, options?: any): Promise<void> {
|
||||
public deleteUser(username: string, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.deleteUser(username, options);
|
||||
|
||||
// build promise chain
|
||||
@ -355,7 +355,7 @@ export class UserApi {
|
||||
});
|
||||
}
|
||||
|
||||
public getUserByName(username: string, options?: any): Promise<User> {
|
||||
public getUserByName(username: string, options?: Configuration): Promise<User> {
|
||||
const requestContext = this.requestFactory.getUserByName(username, options);
|
||||
|
||||
// build promise chain
|
||||
@ -374,7 +374,7 @@ export class UserApi {
|
||||
});
|
||||
}
|
||||
|
||||
public loginUser(username: string, password: string, options?: any): Promise<string> {
|
||||
public loginUser(username: string, password: string, options?: Configuration): Promise<string> {
|
||||
const requestContext = this.requestFactory.loginUser(username, password, options);
|
||||
|
||||
// build promise chain
|
||||
@ -393,7 +393,7 @@ export class UserApi {
|
||||
});
|
||||
}
|
||||
|
||||
public logoutUser(options?: any): Promise<void> {
|
||||
public logoutUser(options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.logoutUser(options);
|
||||
|
||||
// build promise chain
|
||||
@ -412,7 +412,7 @@ export class UserApi {
|
||||
});
|
||||
}
|
||||
|
||||
public updateUser(username: string, user: User, options?: any): Promise<void> {
|
||||
public updateUser(username: string, user: User, options?: Configuration): Promise<void> {
|
||||
const requestContext = this.requestFactory.updateUser(username, user, options);
|
||||
|
||||
// build promise chain
|
||||
|
@ -7,8 +7,8 @@ export * from './User';
|
||||
|
||||
import { ApiResponse } from './ApiResponse';
|
||||
import { Category } from './Category';
|
||||
import { Order } from './Order';
|
||||
import { Pet } from './Pet';
|
||||
import { Order , OrderStatusEnum } from './Order';
|
||||
import { Pet , PetStatusEnum } from './Pet';
|
||||
import { Tag } from './Tag';
|
||||
import { User } from './User';
|
||||
|
||||
@ -24,10 +24,10 @@ let primitives = [
|
||||
"any"
|
||||
];
|
||||
|
||||
let enumsMap: {[index: string]: any} = {
|
||||
"Order.StatusEnum": Order.StatusEnum,
|
||||
"Pet.StatusEnum": Pet.StatusEnum,
|
||||
}
|
||||
let enumsMap: Set<string> = new Set<string>([
|
||||
"OrderStatusEnum",
|
||||
"PetStatusEnum",
|
||||
]);
|
||||
|
||||
let typeMap: {[index: string]: any} = {
|
||||
"ApiResponse": ApiResponse,
|
||||
@ -47,7 +47,7 @@ export class ObjectSerializer {
|
||||
} else if (expectedType === "Date") {
|
||||
return expectedType;
|
||||
} else {
|
||||
if (enumsMap[expectedType]) {
|
||||
if (enumsMap.has(expectedType)) {
|
||||
return expectedType;
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ export class ObjectSerializer {
|
||||
} else if (type === "Date") {
|
||||
return data.toISOString();
|
||||
} else {
|
||||
if (enumsMap[type]) {
|
||||
if (enumsMap.has(type)) {
|
||||
return data;
|
||||
}
|
||||
if (!typeMap[type]) { // in case we dont know the type
|
||||
@ -131,7 +131,7 @@ export class ObjectSerializer {
|
||||
} else if (type === "Date") {
|
||||
return new Date(data);
|
||||
} else {
|
||||
if (enumsMap[type]) {// is Enum
|
||||
if (enumsMap.has(type)) {// is Enum
|
||||
return data;
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ export class Order {
|
||||
/**
|
||||
* Order Status
|
||||
*/
|
||||
'status'?: Order.StatusEnum;
|
||||
'status'?: OrderStatusEnum;
|
||||
'complete'?: boolean;
|
||||
|
||||
static discriminator: string | undefined = undefined;
|
||||
@ -42,7 +42,7 @@ export class Order {
|
||||
{
|
||||
"name": "status",
|
||||
"baseName": "status",
|
||||
"type": "Order.StatusEnum"
|
||||
"type": "OrderStatusEnum"
|
||||
},
|
||||
{
|
||||
"name": "complete",
|
||||
@ -55,10 +55,6 @@ export class Order {
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Order {
|
||||
export enum StatusEnum {
|
||||
Placed = <any> 'placed',
|
||||
Approved = <any> 'approved',
|
||||
Delivered = <any> 'delivered'
|
||||
}
|
||||
}
|
||||
|
||||
export type OrderStatusEnum = "placed" | "approved" | "delivered" ;
|
||||
|
||||
|
@ -16,7 +16,7 @@ export class Pet {
|
||||
/**
|
||||
* pet status in the store
|
||||
*/
|
||||
'status'?: Pet.StatusEnum;
|
||||
'status'?: PetStatusEnum;
|
||||
|
||||
static discriminator: string | undefined = undefined;
|
||||
|
||||
@ -49,7 +49,7 @@ export class Pet {
|
||||
{
|
||||
"name": "status",
|
||||
"baseName": "status",
|
||||
"type": "Pet.StatusEnum"
|
||||
"type": "PetStatusEnum"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
@ -57,10 +57,6 @@ export class Pet {
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Pet {
|
||||
export enum StatusEnum {
|
||||
Available = <any> 'available',
|
||||
Pending = <any> 'pending',
|
||||
Sold = <any> 'sold'
|
||||
}
|
||||
}
|
||||
|
||||
export type PetStatusEnum = "available" | "pending" | "sold" ;
|
||||
|
||||
|
@ -13,7 +13,7 @@ const pet = new Pet()
|
||||
pet.id = Math.floor(Math.random() * 100000)
|
||||
pet.name = "PetName"
|
||||
pet.photoUrls = []
|
||||
pet.status = Pet.StatusEnum.Available
|
||||
pet.status = 'available'
|
||||
pet.tags = [ tag ]
|
||||
pet.category = undefined
|
||||
|
||||
|
@ -48,7 +48,7 @@ describe("ObjectSerializer", () => {
|
||||
});
|
||||
|
||||
it ("Enum", () => {
|
||||
const input = Pet.StatusEnum.Available
|
||||
const input = "available"
|
||||
expect(ObjectSerializer.serialize(input, "Pet.StatusEnum")).to.equal("available")
|
||||
})
|
||||
|
||||
@ -74,7 +74,7 @@ describe("ObjectSerializer", () => {
|
||||
pet.category = category
|
||||
pet.name = "PetName"
|
||||
pet.photoUrls = [ "url", "other url"]
|
||||
pet.status = Pet.StatusEnum.Available
|
||||
pet.status = "available"
|
||||
pet.tags = tags
|
||||
|
||||
expect(ObjectSerializer.serialize(pet, "Pet")).to.deep.equal({
|
||||
@ -149,7 +149,7 @@ describe("ObjectSerializer", () => {
|
||||
});
|
||||
|
||||
it ("Enum", () => {
|
||||
const input = Pet.StatusEnum.Available
|
||||
const input = "available"
|
||||
expect(ObjectSerializer.deserialize("available", "Pet.StatusEnum")).to.equal(input)
|
||||
})
|
||||
|
||||
@ -175,7 +175,7 @@ describe("ObjectSerializer", () => {
|
||||
pet.category = category
|
||||
pet.name = "PetName"
|
||||
pet.photoUrls = [ "url", "other url"]
|
||||
pet.status = Pet.StatusEnum.Available
|
||||
pet.status = "available"
|
||||
pet.tags = tags
|
||||
|
||||
const deserialized = ObjectSerializer.deserialize({
|
||||
|
Loading…
x
Reference in New Issue
Block a user