Created by: ralphpig
Fixes #8000 (closed)
Summary
When using allOf
, or oneOf
with an inline schema, a Union/Intersection type is generated with the primitive object
. This results in an invalid import because the composed type of the schema is ignored.
import { BaseObject & object }
Approach
To fix this I used needToImport
to removes the language primitives from being imported. This same check already happens in addImport
, but not in toModelImportMap
.
toModelImportMap
splits union types but not intersection types, so I've combined those cases into splitComposedType
. For splitComposedType
I combined replace(" ","").split("\\|")
and split("( [|&] )|[<>]")
into replace(" ","").split("[|&<>]")
. These should be equivilant regex, and I think stripping the whitespace is good here.
I added the warning in toModelImport
strictly because there was already a warning for the union type and wanted to be consistent.
Minimal Reproducible Example
-g typescript-axios --additional-properties=withSeparateModelsAndApi=true,apiPackage=api,modelPackage=models
openapi: 3.0.3
info:
title: Issue 8000
version: 1.0.0
description: Issue 8000 Minimal Reproducible Example
paths:
/resource:
get:
operationId: get_resource
responses:
200:
description: resource
content:
application/json:
schema:
type: object
allOf:
- $ref: '#/components/schemas/BaseObject'
- type: object
properties:
field:
type: string
components:
schemas:
BaseObject:
type: object
properties:
id:
type: integer
PR checklist
-
Read the contribution guidelines. -
Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community. -
Run the following to build the project and update samples: ./mvnw clean package ./bin/generate-samples.sh ./bin/utils/export_docs_generators.sh
./bin/generate-samples.sh bin/configs/java*
. For Windows users, please run the script in Git BASH.- No changes
-
File the PR against the correct branch: master
,5.1.x
,6.0.x
-
If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.
@TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @topce (2018/10) @akehir (2019/07) @petejohansonxo (2019/11) @amakhrov (2020/02)