completecoding / serverless-auto-swagger

79 stars 48 forks source link

Enums are not exported from type files. #98

Open cyanid opened 1 year ago

cyanid commented 1 year ago

I have enums in my type files, for example:

export enum DeliveryType { HOME_DELIVERY = "homedelivery", POST_PICKUP_POINT = "post_pickup_point", CARGO_HOME_DELIVERY = "cargo_homedelivery", }

If I import generated JSON to editor.swagger.io, following error is produced:

Semantic error at definitions.ShipmentDeliveryMethod.properties.deliveryType.$ref $refs must reference a valid location in the document

The snippet from JSON which causes the error is:

"deliveryType": { "$ref": "#/definitions/DeliveryType", "title": "ShipmentDeliveryMethod.deliveryType" }

bfaulk96 commented 1 year ago

I believe this is a problem with typeconv, which is the library we use to define the JSON schemas. I have found that for enums, I have to just do something like

type DeliveryType = 'homedelivery' | 'post_pickup_point' | 'cargo_homedelivery';, which is less than ideal, but I'm not sure there's much we can do about it.

lmanerich commented 1 year ago

Sad thing that is not even possible to use:

type DeliveryType = keyof typeof DeliveryTypeEnum