feat: readValidatedBody and getValidatedQuery utils#459
Merged
Conversation
Hebilicious
reviewed
Jul 25, 2023
Codecov Report
@@ Coverage Diff @@
## main #459 +/- ##
==========================================
+ Coverage 78.52% 78.79% +0.26%
==========================================
Files 26 27 +1
Lines 2841 2862 +21
Branches 417 421 +4
==========================================
+ Hits 2231 2255 +24
+ Misses 610 607 -3
|
Member
Author
|
Thinking to move it forward faster. There are certainly improvement areas we can built on top of this two functions |
8 tasks
Contributor
|
Love this! h3-zod will put to rest soon 🤣 |
This was referenced Jul 27, 2023
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 Linked issue
❓ Type of change
📚 Description
(This is a rework of #431 by @Hebilicious)
The two new
readValidatedBody(event, validate)andgetValidatedQuery(event, validate)wrap unsafereadBodyandgetQuerymethods with type and runtime safety validation.Type can be automatically inferred from validated function signature or manually specified as the first argument.
validateargument is a function that accepts a data object and should either resolve to original value with optionally normalization and applied defaults or throw an error or returnfalseas an indicator that validation failed. The result can be also a promise for future compatibility.Most validator utilities are compatible with
validatefunction. zod schema for example can be used as validate likeschema.parse/readValidatedBody(event, RequestSchema.parse). In the future, we might consider automatically inferring this key for popular libraries (inspired by typeschema) when possible.📝 Checklist