OpenAPITools / OpenAPITools/openapi-generator
[BUG] Property with oneOf leads to wrong Typescript
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Description
Generating Typescript Clients with a schema that have a property including "oneOf" gets rendered wrong.
openapi-generator version
6.4.0
OpenAPI declaration file content or url
Generation Details
Following the swagger:
"CarFactoryCreate": {
"type": "object",
"properties": {
"vehicles": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/CarCreate"
},
{
"$ref": "#/components/schemas/BikeCreate"
},
{
"$ref": "#/components/schemas/BycicleCreate"
}
],
"description": ""
},
"description": "",
"nullable": true
}
},
"additionalProperties": false,
"description": ""
},
leads to the following generation that is obvisiously wrong:
import type { CarCreate | BikeCreate | BycicleCreate } from './CarCreate | BikeCreate | BycicleCreate';
import {
CarCreate | BikeCreate | BycicleCreateFromJSON,
CarCreate | BikeCreate | BycicleCreateFromJSONTyped,
CarCreate | BikeCreate | BycicleCreateToJSON,
} from './CarCreate | BikeCreate | BycicleCreate';
Steps to reproduce
Having the mentioned swagger, run generate "typescript-fetch" with interfaces= false
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with the provided OpenAPI schema using the typescript-fetch generator and interfaces=false. Inspect the generator path that handles array items with oneOf; done means the generated TypeScript imports and union type references are valid rather than using a union as a filename.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- openapi, typescript
- Domain
- api, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100