feat: implement standard schema spec#3080
feat: implement standard schema spec#3080Marsup merged 4 commits intohapijs:masterfrom xballoy:xba/standard-schema
Conversation
|
Hi, thanks for that great PR, this seems properly implemented, I just have some doubts about async validation. It seems they advise against it, but only because of zod constraints if I got it right? I guess that'll lead to a few surprises for users. |
@Marsup from the type definition Would it make sense to check if there are external async and do an async validation only in that case? |
|
That's usually up to the schema creator to decide, but an error will be thrown if an async schema is called with the sync method. Since the advent of async/await, I've honestly been thinking of sunsetting the sync api, as it's now so easy to use promises, but it seems to go against their recommendations. I guess joi could have an api that surfaces externals if that helps. |
|
zod seems to support async validation with the standard schema: https://github.com/colinhacks/zod/pull/3850/files#diff-f025de6d5c2512a8f3d95968437eb61a2bb34c012ca364ee2ed65adcef828b86R53 We could always use the async validation, that would:
Or if we have an easy way to check if the schema contains an external with an async method we could call the async validation only in that case. What do you think? |
|
@Marsup I updated the logic + added tests to support |
|
Sorry, took me a while to find some time. Is #3084 a good fit to help you with this PR? |
|
@Marsup I rebased on |
|
Thanks a lot for your work, I'll try to release the next major soon! |
Implements standard-schema.
Fixes #3078