Skip to content

improved schema preprocessor and Date object handling (validation/serialization) for response bodies#499

Merged
cdimascio merged 33 commits intomasterfrom
cmd/alt/serdes
Dec 26, 2020
Merged

improved schema preprocessor and Date object handling (validation/serialization) for response bodies#499
cdimascio merged 33 commits intomasterfrom
cmd/alt/serdes

Conversation

@cdimascio
Copy link
Copy Markdown
Owner

@cdimascio cdimascio commented Dec 24, 2020

see #493 for a detailed discussion on this topic

pilerou and others added 21 commits December 18, 2020 19:15
We can cast data from request to object or transform object to string (or other type) in response.
Documentation modified and an example project created
…ion. We must add an unique ID field in schema description in order to have a specific schema description for each component

+
Test added coercecomponents.spec.ts
+ example modified in order to expose a date
- Fix function names serialize and deserialize => To be clear for everybody on which functions are executed on requests and responses, it's now `deserializeRequestComponent` and `serializeResponseComponent`
@electrotype
Copy link
Copy Markdown

@cdimascio I didn't validate the code itself, but I did validate this branch in my project and it works #1, without any modification required on my side.

Fantastic work!!

@electrotype
Copy link
Copy Markdown

This is the magical line, isn't it?

(schema.type = 'object'), (schema.schemaObjectFunctions = dateTime);

:-)

@cdimascio cdimascio changed the title update schema preprocessor improved schema preprocessor and Date object handling (validation/serialization) for response bodies Dec 25, 2020
@cdimascio cdimascio merged commit e08f45a into master Dec 26, 2020
@cdimascio cdimascio deleted the cmd/alt/serdes branch September 1, 2024 04:49
cdimascio added a commit that referenced this pull request Mar 2, 2025
…erialization) for response bodies (#499)

* CoerceComponents feature as expected in #353
We can cast data from request to object or transform object to string (or other type) in response.
Documentation modified and an example project created

* Issue on Typescript Options inheritance

* Patch AJV cache integration issue. AJV has a cache by schema description. We must add an unique ID field in schema description in order to have a specific schema description for each component
+
Test added coercecomponents.spec.ts
+ example modified in order to expose a date

* Change Test name to "coercecomponents". I missed to change from the example

* - Changes `coerceComponents` to `schemaObjectMapper`
- Fix function names serialize and deserialize => To be clear for everybody on which functions are executed on requests and responses, it's now `deserializeRequestComponent` and `serializeResponseComponent`

* Move example resources `7-coerce-components` to `7-schema-object-mapper`

* update naming and type declarations

* doc: update documentation

* traverse spec

* update preprocessor

* travserse via Node abstraction

* traverse and update both schemas

* finish one pass traversal to modified req and res schemas independently

* doc: remove schemaObjectMapper from readme

* doc: remove schemaObjectMapper from README

* fix: update method name

* cleanup

* rename preprocessor

* rename var

* sample built-in date-time formatter

* fix: types

* feat: provide opt-in option responseValidation serialization

* feat: handle date and date-time

* doc: update README

* fix: add example - Date serialization in responses

* doc: update README

* feat: add date serialization example

* doc: update README

* chore: remove commented code

* feat: handle Date or date string automatically

* add format metadata to Serializer

Co-authored-by: Pierre Le Roux <pilerou@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants