ecyrbe / zodios

typescript http client and server with zod validation

Home Page:https://www.zodios.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Generate enum and union with zodios

palaniichukdmytro opened this issue · comments

I think it's common issue for generate type from open api spec.
I am using with zodios https://github.com/astahmer/openapi-zod-client/ openapi-zod-client. But did not found any possible solution to generate enum , instead I see that only union types is possible . Any idea to generate TS enum to use this enum in a code durin compile time .

Example schema json

 {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "flat",
                "grouped"
              ],
              "type": "string",
              "default": "flat",
              "title": "Format"
            }

By default it's generated to union with type flag enabled or via handlebars templates you can do your self. But it is not possible to generate TS enum.

Output:

export const Format= z.enum([
  'Flat',
  'Grouped',
])
export type FormatType = z.infer<typeof Format> // union one

Exacted/Desire output

export enum FormatEnum {
Flat = 'Flat', 
Grouped = 'Grouped'
}

not zodios issue