Created by: amakhrov
Intro Historically, TypeScript generators had typeMapping "DateTime=Date". However only select generators generate code that really does serialization/deserialization of dates at runtime.
Some other generators support serialization of Date query parameters, but not deserialize models returned from api. Without proper model deserialization, the whole DateTime=Date mapping is simply incorrect (declared data type is Date
, but real value at runtime coming from api is still string
).
-
Generators that fully implement serialization:
typescript-fetch
,typescript-reduxquery
,typescript-node
. -
Generators with partial support (query params only, but not models):
typescript-angular
,typescript-axios
.
Lately this partial Date support seems to get quite a bit of traction: https://github.com/OpenAPITools/openapi-generator/pull/4869, https://github.com/OpenAPITools/openapi-generator/pull/5057, https://github.com/OpenAPITools/openapi-generator/pull/5225, https://github.com/OpenAPITools/openapi-generator/pull/5266, https://github.com/OpenAPITools/openapi-generator/pull/5287
The approach implemented in this PR is
- Keep Date support as is for generators that fully support serialization/deserialization.
- Set typeMapping
DateTime=string
for all other typescript generators (actually, inAbstractTypescriptClient
). - Remove partial support for Dates from mustache templates (for generators with partial support, as listed above).
PR checklist
-
Read the contribution guidelines. -
Run the shell script(s) under ./bin/
(or Windows batch scripts under.\bin\windows
) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run./bin/{LANG}-petstore.sh
,./bin/openapi3/{LANG}-petstore.sh
if updating the code or mustache templates for a language ({LANG}
) (e.g. php, ruby, python, etc). -
File the PR against the correct branch: master
,4.3.x
,5.0.x
. Default:master
. -
Copy the technical committee to review the pull request if your PR is targeting a particular programming language.
@TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @nicokoenig (2018/09) @topce (2018/10) @akehir (2019/07) @petejohansonxo (2019/11) @amakhrov (2020/02)