forked from loafle/openapi-generator-original
[typescript-fetch] remove namespaces in enums (#2123)
* fix #1947, namespaces on typescript fetch * fix #1947, namespaces on typescript fetch * reversed change in AbstractTypeScriptClientCodegen specialized TypeScriptFetchClientCodegen.postProcessModels * removed enums in ts-fetch tests
This commit is contained in:
committed by
William Cheng
parent
49ef024cf6
commit
8a0248eee0
@@ -25,6 +25,7 @@ import org.openapitools.codegen.utils.ModelUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.TreeSet;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@@ -141,6 +142,34 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege
|
||||
addImport(codegenModel, codegenModel.additionalPropertiesType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
|
||||
// process enum in models
|
||||
List<Object> models = (List<Object>) postProcessModelsEnum(objs).get("models");
|
||||
for (Object _mo : models) {
|
||||
Map<String, Object> mo = (Map<String, Object>) _mo;
|
||||
CodegenModel cm = (CodegenModel) mo.get("model");
|
||||
cm.imports = new TreeSet(cm.imports);
|
||||
// name enum with model name, e.g. StatusEnum => Pet.StatusEnum
|
||||
for (CodegenProperty var : cm.vars) {
|
||||
if (Boolean.TRUE.equals(var.isEnum)) {
|
||||
// behaviour for enum names is specific for Typescript Fetch, not using namespaces
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return objs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> postProcessAllModels(Map<String, Object> objs) {
|
||||
Map<String, Object> result = super.postProcessAllModels(objs);
|
||||
|
||||
@@ -88,26 +88,22 @@ export function {{classname}}ToJSON(value?: {{classname}}): any {
|
||||
return value;
|
||||
{{/hasVars}}
|
||||
}
|
||||
{{#hasEnums}}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace {{classname}}
|
||||
*/
|
||||
export namespace {{classname}} {
|
||||
{{#hasEnums}}
|
||||
{{#vars}}
|
||||
{{#isEnum}}
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum {{enumName}} {
|
||||
{{#allowableValues}}
|
||||
{{#enumVars}}
|
||||
{{{name}}} = {{{value}}}{{^-last}},{{/-last}}
|
||||
{{/enumVars}}
|
||||
{{/allowableValues}}
|
||||
}
|
||||
{{/isEnum}}
|
||||
{{#isEnum}}
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum {{classname}}{{enumName}} {
|
||||
{{#allowableValues}}
|
||||
{{#enumVars}}
|
||||
{{{name}}} = {{{value}}}{{^-last}},{{/-last}}
|
||||
{{/enumVars}}
|
||||
{{/allowableValues}}
|
||||
}
|
||||
{{/isEnum}}
|
||||
{{/vars}}
|
||||
}{{/hasEnums}}
|
||||
|
||||
{{/hasEnums}}
|
||||
@@ -47,7 +47,7 @@ export interface Order {
|
||||
* @type {string}
|
||||
* @memberof Order
|
||||
*/
|
||||
status?: Order.StatusEnum;
|
||||
status?: OrderStatusEnum;
|
||||
/**
|
||||
*
|
||||
* @type {boolean}
|
||||
@@ -82,18 +82,13 @@ export function OrderToJSON(value?: Order): any {
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace Order
|
||||
*/
|
||||
export namespace Order {
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum StatusEnum {
|
||||
Placed = 'placed',
|
||||
Approved = 'approved',
|
||||
Delivered = 'delivered'
|
||||
}
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum OrderStatusEnum {
|
||||
Placed = 'placed',
|
||||
Approved = 'approved',
|
||||
Delivered = 'delivered'
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ export interface Pet {
|
||||
* @type {string}
|
||||
* @memberof Pet
|
||||
*/
|
||||
status?: Pet.StatusEnum;
|
||||
status?: PetStatusEnum;
|
||||
}
|
||||
|
||||
export function PetFromJSON(json: any): Pet {
|
||||
@@ -91,18 +91,13 @@ export function PetToJSON(value?: Pet): any {
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace Pet
|
||||
*/
|
||||
export namespace Pet {
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum StatusEnum {
|
||||
Available = 'available',
|
||||
Pending = 'pending',
|
||||
Sold = 'sold'
|
||||
}
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum PetStatusEnum {
|
||||
Available = 'available',
|
||||
Pending = 'pending',
|
||||
Sold = 'sold'
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ export interface Order {
|
||||
* @type {string}
|
||||
* @memberof Order
|
||||
*/
|
||||
status?: Order.StatusEnum;
|
||||
status?: OrderStatusEnum;
|
||||
/**
|
||||
*
|
||||
* @type {boolean}
|
||||
@@ -82,18 +82,13 @@ export function OrderToJSON(value?: Order): any {
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace Order
|
||||
*/
|
||||
export namespace Order {
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum StatusEnum {
|
||||
Placed = 'placed',
|
||||
Approved = 'approved',
|
||||
Delivered = 'delivered'
|
||||
}
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum OrderStatusEnum {
|
||||
Placed = 'placed',
|
||||
Approved = 'approved',
|
||||
Delivered = 'delivered'
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ export interface Pet {
|
||||
* @type {string}
|
||||
* @memberof Pet
|
||||
*/
|
||||
status?: Pet.StatusEnum;
|
||||
status?: PetStatusEnum;
|
||||
}
|
||||
|
||||
export function PetFromJSON(json: any): Pet {
|
||||
@@ -91,18 +91,13 @@ export function PetToJSON(value?: Pet): any {
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace Pet
|
||||
*/
|
||||
export namespace Pet {
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum StatusEnum {
|
||||
Available = 'available',
|
||||
Pending = 'pending',
|
||||
Sold = 'sold'
|
||||
}
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum PetStatusEnum {
|
||||
Available = 'available',
|
||||
Pending = 'pending',
|
||||
Sold = 'sold'
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ export interface Order {
|
||||
* @type {string}
|
||||
* @memberof Order
|
||||
*/
|
||||
status?: Order.StatusEnum;
|
||||
status?: OrderStatusEnum;
|
||||
/**
|
||||
*
|
||||
* @type {boolean}
|
||||
@@ -82,18 +82,13 @@ export function OrderToJSON(value?: Order): any {
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace Order
|
||||
*/
|
||||
export namespace Order {
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum StatusEnum {
|
||||
Placed = 'placed',
|
||||
Approved = 'approved',
|
||||
Delivered = 'delivered'
|
||||
}
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum OrderStatusEnum {
|
||||
Placed = 'placed',
|
||||
Approved = 'approved',
|
||||
Delivered = 'delivered'
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ export interface Pet {
|
||||
* @type {string}
|
||||
* @memberof Pet
|
||||
*/
|
||||
status?: Pet.StatusEnum;
|
||||
status?: PetStatusEnum;
|
||||
}
|
||||
|
||||
export function PetFromJSON(json: any): Pet {
|
||||
@@ -91,18 +91,13 @@ export function PetToJSON(value?: Pet): any {
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace Pet
|
||||
*/
|
||||
export namespace Pet {
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum StatusEnum {
|
||||
Available = 'available',
|
||||
Pending = 'pending',
|
||||
Sold = 'sold'
|
||||
}
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum PetStatusEnum {
|
||||
Available = 'available',
|
||||
Pending = 'pending',
|
||||
Sold = 'sold'
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ export interface Order {
|
||||
* @type {string}
|
||||
* @memberof Order
|
||||
*/
|
||||
status?: Order.StatusEnum;
|
||||
status?: OrderStatusEnum;
|
||||
/**
|
||||
*
|
||||
* @type {boolean}
|
||||
@@ -82,18 +82,13 @@ export function OrderToJSON(value?: Order): any {
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace Order
|
||||
*/
|
||||
export namespace Order {
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum StatusEnum {
|
||||
Placed = 'placed',
|
||||
Approved = 'approved',
|
||||
Delivered = 'delivered'
|
||||
}
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum OrderStatusEnum {
|
||||
Placed = 'placed',
|
||||
Approved = 'approved',
|
||||
Delivered = 'delivered'
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ export interface Pet {
|
||||
* @type {string}
|
||||
* @memberof Pet
|
||||
*/
|
||||
status?: Pet.StatusEnum;
|
||||
status?: PetStatusEnum;
|
||||
}
|
||||
|
||||
export function PetFromJSON(json: any): Pet {
|
||||
@@ -91,18 +91,13 @@ export function PetToJSON(value?: Pet): any {
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @namespace Pet
|
||||
*/
|
||||
export namespace Pet {
|
||||
/**
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum StatusEnum {
|
||||
Available = 'available',
|
||||
Pending = 'pending',
|
||||
Sold = 'sold'
|
||||
}
|
||||
* @export
|
||||
* @enum {string}
|
||||
*/
|
||||
export enum PetStatusEnum {
|
||||
Available = 'available',
|
||||
Pending = 'pending',
|
||||
Sold = 'sold'
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { expect } from 'chai';
|
||||
import { PetApi, Pet, Category } from '@swagger/typescript-fetch-petstore';
|
||||
import { PetApi, Pet, PetStatusEnum, Category } from '@swagger/typescript-fetch-petstore';
|
||||
import { config } from '../configuration';
|
||||
|
||||
describe('PetApi', () => {
|
||||
@@ -67,7 +67,7 @@ function createTestFixture(ts = Date.now()) {
|
||||
'name': `pet${ts}`,
|
||||
'category': category,
|
||||
'photoUrls': ['http://foo.bar.com/1', 'http://foo.bar.com/2'],
|
||||
'status': Pet.StatusEnum.Available,
|
||||
'status': PetStatusEnum.Available,
|
||||
'tags': []
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user