Open
Description
Hi, i try to generate some enums.
export type AddedRemoveEvent = {
type: EventType.ADDED | EventType.REMOVED;
target: EventUser;
};
export type AssignUnassignEvent = {
type: EventType.ASSIGNED | EventType.UNASSIGNED;
target: EventUser;
};
export type RatedEvent = {
type: EventType.RATED;
rating: number;
};
export type OpenClosedEvent = {
type: EventType.OPENED | EventType.CLOSED;
previousState: TicketStatus;
};
export type CreatedDeletedEvent = {
type: EventType.CREATED | EventType.DELETED;
};
export type EventData =
| AddedRemoveEvent
| AssignUnassignEvent
| RatedEvent
| OpenClosedEvent
| CreatedDeletedEvent;
export enum EventType {
CREATED = "created",
CLOSED = "closed",
OPENED = "opened",
DELETED = "deleted",
RATED = "rated",
ADDED = "added",
REMOVED = "removed",
COMMAND = "command",
ASSIGNED = "assigned",
UNASSIGNED = "unassigned",
OTHER = "other",
}
This will generate:
"EventType.ADDED": {
"enum": [
"added"
],
"type": "string",
"x-enum-varnames": [
"ADDED"
]
},
"EventType.REMOVED": {
"enum": [
"removed"
],
"type": "string",
"x-enum-varnames": [
"REMOVED"
]
},
"AddedRemoveEvent": {
"properties": {
"target": {
"$ref": "#/components/schemas/EventUser"
},
"type": {
"anyOf": [
{
"$ref": "#/components/schemas/EventType.ADDED"
},
{
"$ref": "#/components/schemas/EventType.REMOVED"
}
]
}
},
"required": [
"target",
"type"
],
"type": "object"
},
"EventType.ASSIGNED": {
"enum": [
"assigned"
],
"type": "string",
"x-enum-varnames": [
"ASSIGNED"
]
},
"EventType.UNASSIGNED": {
"enum": [
"unassigned"
],
"type": "string",
"x-enum-varnames": [
"UNASSIGNED"
]
},
"AssignUnassignEvent": {
"properties": {
"target": {
"$ref": "#/components/schemas/EventUser"
},
"type": {
"anyOf": [
{
"$ref": "#/components/schemas/EventType.ASSIGNED"
},
{
"$ref": "#/components/schemas/EventType.UNASSIGNED"
}
]
}
},
"required": [
"target",
"type"
],
"type": "object"
},
I dont post the full swagger file.
You see that tsoa is generating everytime a new enum for each used enum.
Is their away to prevent this?
Metadata
Metadata
Assignees
Labels
No labels