Open amitbeck opened 1 month ago
I'm not an expert on zod
, but that cannot be achieved directly in the schema definition to do a lookup for the property and use a variant?
At the moment the request is received, the context
of the request is sealed and cannot be altered (which affects the schema). request.routeOptions
properties are read-only.
This has to be achieved using the fastify.setValidationCompiler
. There you can customize how the validation gets set.
💬 Question here
Is it possible to update a route's request body schema (
request.routeOptions.schema.body
) according to the provided route param in runtime, using thepreValidation
hook? It's possible to achieve this using thepreHandler
hook but that's past the builtin validation stage of the request, and requires manually validating the request body.This is my schema:
And this is my route:
Updating
request.routeOptions.schema.body
in thepreValidation
hook doesn't seem to work - when getting a request for the"bookmark"
interaction kind with{ "reaction": "like" }
as the body, which matches another interaction kind's schema, the handler is reached even though it should fail. My current workaround is to manually validate the request body in thepreHandler
hook.Your Environment