Skip to content

Conversation

@wing328
Copy link
Member

@wing328 wing328 commented Oct 28, 2025

Add REMOVE_PROPERTIES_FROM_TYPE_OTHER_THAN_OBJECT normalize option

to fix #21680

Created a new normalize option called REMOVE_PROPERTIES_FROM_TYPE_OTHER_THAN_OBJECT to remove "properties" attribute from type other than "object".
If my PR is accepted, the new option shall be documented in normalizer documentation

I created a new unit test, and tested the whole process with the complete specification (faulty specification) with the following command:

java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
-g typescript-fetch \
--additional-properties=supportES6=true,npmVersion=6.9.0,typescriptThreePlus=true \
-i ~/buildDev/bug_openapi/interface/openapi.json \
-o ~/buildDev/bug_openapi/typescript-client-test \
--openapi-normalizer REMOVE_PROPERTIES_FROM_TYPE_OTHER_THAN_OBJECT=true

I also added an advice in modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java to use --openapi-normalizer REMOVE_PROPERTIES_FROM_TYPE_OTHER_THAN_OBJECT=true when the oddity is encountered.

fyi @galamome

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 || exit
    ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
    ./bin/utils/export_docs_generators.sh || exit
    
    (For Windows users, please run the script in WSL)
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
  • File the PR against the correct branch: master (upcoming 7.x.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR solves a reported issue, reference it using GitHub's linking syntax (e.g., having "fixes #123" present in the PR description)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

@wing328 wing328 changed the title Galamome fix issue 21680 type other than object with properties openapi-normalizer: Add REMOVE_PROPERTIES_FROM_TYPE_OTHER_THAN_OBJECT normalize option Oct 28, 2025
@wing328 wing328 added Enhancement: Feature OpenAPI Normalizer Normalize the spec for easier processing labels Oct 28, 2025
@wing328 wing328 added this to the 7.17.0 milestone Oct 28, 2025
@wing328 wing328 marked this pull request as ready for review October 28, 2025 05:53
@wing328 wing328 merged commit 351b601 into master Oct 28, 2025
12 of 14 checks passed
@wing328 wing328 deleted the galamome-fix_issue_21680_type_other_than_object_with_properties branch October 28, 2025 06:11
rajvesh pushed a commit to rajvesh/openapi-generator that referenced this pull request Dec 25, 2025
… normalize option (OpenAPITools#22236)

* fix bug 21680: Introduce REMOVE_PROPERTIES_FROM_TYPE_OTHER_THAN_OBJECT normalize option

* Advise to use REMOVE_PROPERTIES_FROM_TYPE_OTHER_THAN_OBJECT

* update doc

---------

Co-authored-by: Guillaume ALAMOME <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement: Feature OpenAPI Normalizer Normalize the spec for easier processing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG][TYPESCRIPT-FETCH] Bug generating Typescript when array has both "items" and "properties" attributes

3 participants