[typescript-rxjs] fix enums (#2242)

* fix issue with duplicate enum exports

* regenerate typescript-rxjs samples
This commit is contained in:
Bernd 2019-03-01 12:09:06 +01:00 committed by William Cheng
parent c30a21ac3c
commit 052879d6cb
10 changed files with 66 additions and 19 deletions

View File

@ -25,6 +25,7 @@ import org.openapitools.codegen.utils.ModelUtils;
import java.io.File; import java.io.File;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.TreeSet;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
@ -144,7 +145,29 @@ public class TypeScriptRxjsClientCodegen extends AbstractTypeScriptClientCodegen
@Override @Override
public Map<String, Object> postProcessModels(Map<String, Object> objs) { public Map<String, Object> postProcessModels(Map<String, Object> objs) {
// don't do enum modifications // 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 => PetStatusEnum
for (CodegenProperty var : cm.vars) {
if (Boolean.TRUE.equals(var.isEnum)) {
// behaviour for enum names is specific for typescript to not use 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; return objs;
} }

View File

@ -31,7 +31,7 @@ export interface {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum {{enumName}} { export enum {{classname}}{{enumName}} {
{{#allowableValues}} {{#allowableValues}}
{{#enumVars}} {{#enumVars}}
{{{name}}} = {{{value}}}{{^-last}},{{/-last}} {{{name}}} = {{{value}}}{{^-last}},{{/-last}}

View File

@ -46,7 +46,7 @@ export interface Order {
* @type {string} * @type {string}
* @memberof Order * @memberof Order
*/ */
status?: StatusEnum; status?: OrderStatusEnum;
/** /**
* *
* @type {boolean} * @type {boolean}
@ -59,6 +59,9 @@ export interface Order {
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum StatusEnum { export enum OrderStatusEnum {
Placed = 'placed',
Approved = 'approved',
Delivered = 'delivered'
} }

View File

@ -57,13 +57,16 @@ export interface Pet {
* @type {string} * @type {string}
* @memberof Pet * @memberof Pet
*/ */
status?: StatusEnum; status?: PetStatusEnum;
} }
/** /**
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum StatusEnum { export enum PetStatusEnum {
Available = 'available',
Pending = 'pending',
Sold = 'sold'
} }

View File

@ -46,7 +46,7 @@ export interface Order {
* @type {string} * @type {string}
* @memberof Order * @memberof Order
*/ */
status?: StatusEnum; status?: OrderStatusEnum;
/** /**
* *
* @type {boolean} * @type {boolean}
@ -59,6 +59,9 @@ export interface Order {
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum StatusEnum { export enum OrderStatusEnum {
Placed = 'placed',
Approved = 'approved',
Delivered = 'delivered'
} }

View File

@ -57,13 +57,16 @@ export interface Pet {
* @type {string} * @type {string}
* @memberof Pet * @memberof Pet
*/ */
status?: StatusEnum; status?: PetStatusEnum;
} }
/** /**
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum StatusEnum { export enum PetStatusEnum {
Available = 'available',
Pending = 'pending',
Sold = 'sold'
} }

View File

@ -46,7 +46,7 @@ export interface Order {
* @type {string} * @type {string}
* @memberof Order * @memberof Order
*/ */
status?: StatusEnum; status?: OrderStatusEnum;
/** /**
* *
* @type {boolean} * @type {boolean}
@ -59,6 +59,9 @@ export interface Order {
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum StatusEnum { export enum OrderStatusEnum {
Placed = 'placed',
Approved = 'approved',
Delivered = 'delivered'
} }

View File

@ -57,13 +57,16 @@ export interface Pet {
* @type {string} * @type {string}
* @memberof Pet * @memberof Pet
*/ */
status?: StatusEnum; status?: PetStatusEnum;
} }
/** /**
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum StatusEnum { export enum PetStatusEnum {
Available = 'available',
Pending = 'pending',
Sold = 'sold'
} }

View File

@ -46,7 +46,7 @@ export interface Order {
* @type {string} * @type {string}
* @memberof Order * @memberof Order
*/ */
status?: StatusEnum; status?: OrderStatusEnum;
/** /**
* *
* @type {boolean} * @type {boolean}
@ -59,6 +59,9 @@ export interface Order {
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum StatusEnum { export enum OrderStatusEnum {
Placed = 'placed',
Approved = 'approved',
Delivered = 'delivered'
} }

View File

@ -57,13 +57,16 @@ export interface Pet {
* @type {string} * @type {string}
* @memberof Pet * @memberof Pet
*/ */
status?: StatusEnum; status?: PetStatusEnum;
} }
/** /**
* @export * @export
* @enum {string} * @enum {string}
*/ */
export enum StatusEnum { export enum PetStatusEnum {
Available = 'available',
Pending = 'pending',
Sold = 'sold'
} }