astahmer / typed-openapi

Generate a headless Typescript API client from an OpenAPI spec
https://typed-openapi-web.vercel.app/
200 stars 23 forks source link

Default values from schema not passed through codegen #34

Open 0237h opened 6 months ago

0237h commented 6 months ago

Hi,

Seems like when applying default values to some parameters in the OpenAPI spec, those defaults are not carried over in the codegen. This could be useful especially for Zod, etc. when parsing the resulting objects to provide the default value.

Example

"parameters": [
  {
    "name": "test_no_default",
    "in": "query",
    "schema": {
      "type": "string"
    }
  },
  {
    "name": "test_with_default",
    "in": "query",
    "schema": {
      "type": "string",
      "default": "hello world"
    }
  }
]

will generate

parameters: z.object({
  query: z.object({
    test_no_default: z.string().optional(),
    test_with_default: z.string().optional(),
  }),
})

instead of

parameters: z.object({
  query: z.object({
    test_no_default: z.string().optional(),
    test_with_default: z.string().optional().default("hello world"),
  }),
})