fix(typescript-fetch): allow null for required nullable parameters
Merged
KA
3mo ago+66+66+01234567890123456789-8-8-0123456789
Description
Fixes #23493.
When a parameter was both required and nullable, typescript-fetch generated
a runtime guard using == null. This rejected both null and undefined,
even though null is valid according to the schema.
This change generates an undefined-only guard for required nullable
parameters:
if (requestParameters['body'] === undefined) {
PR checklist
- Read the contribution guidelines.
- Run the following to build the project and update samples:
(For Windows users, please run the script in WSL)./mvnw clean package || exit ./bin/generate-samples.sh ./bin/configs/*.yaml || exit ./bin/utils/export_docs_generators.sh || exit
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. - 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) @davidgamero (2022/03) @mkusaka (2022/04) @joscha (2024/10)
Summary by cubic
Allow null for required nullable request bodies in the typescript-fetch generator by rejecting only undefined. Fixes #23493 and prevents valid null payloads from being blocked.
- Bug Fixes
- Generate undefined-only guards for required nullable body params (e.g., if requestParameters['body'] === undefined) and update the error message to “undefined”.
- Keep null-or-undefined guards for required non-nullable bodies and all non-body params.
- Add regression test with
issue_23493.yaml; update petstore samples accordingly.