[BUG][typescript-angular] `queryParamObjectFormat` is non-compliant with `tsc --strictNullChecks`
Created by: snebjorn
Bug Report Checklist
-
Have you provided a full/minimal spec to reproduce the issue? -
Have you validated the input using an OpenAPI validator (example)? -
Have you tested with the latest master to confirm the issue still exists? -
Have you searched for related issues/PRs? -
What's the actual output vs expected output? -
[Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
Generating with the queryParamObjectFormat
additional property causes the generated code to be non-compilable with the strictNullChecks
typescript compile flag.
openapi-generator version
6.1.0
OpenAPI declaration file content or url
https://github.com/snebjorn/openapi-gen-bug/blob/master/compile-bug.json
{
"openapi": "3.0.0",
"info": {
"title": "",
"version": ""
},
"paths": {
"/Foos": {
"get": {
"responses": {
"200": {
"description": ""
}
}
}
}
}
}
Generation Details
Generate with queryParamObjectFormat: json
https://github.com/snebjorn/openapi-gen-bug/blob/ee78e17b3e1e8369eed090b4ab4694d3b34ee84d/openapitools.json#L30-L36
Steps to reproduce
- Clone https://github.com/snebjorn/openapi-gen-bug
- Run yarn install
- Run yarn gen
- Run yarn err
- Observe compile error
Related issues/PRs
https://github.com/OpenAPITools/openapi-generator/issues/10844 is somewhat related
Suggest a fix
Ideally generated code should comply with the --strict
rule set of TypeScript.
However a quick fix for this issue is to do what is done on literally the next line in the code
if (typeof value === "object") {
httpParams = httpParams.append(key, JSON.stringify(value));
} else if (key != null) { // <-------------------------------------------- NOTICE
httpParams = httpParams.append(key, value);
}
Just check that key isn't null. append
doesn't accept null or undefined anyway.