(schema: z.ZodType<T>)
| 105 | * (`z.coerce.number()` etc.) when needed; we don't pre-coerce here. |
| 106 | */ |
| 107 | export function validateQuery<T>(schema: z.ZodType<T>): PreHandlerHook { |
| 108 | return (req, reply, done) => { |
| 109 | const result = schema.safeParse(req.query); |
| 110 | if (!result.success) { |
| 111 | reply.send(buildValidationEnvelope(zodIssuesToDetails(result.error), req.id)); |
| 112 | return; |
| 113 | } |
| 114 | req.query = result.data; |
| 115 | done(); |
| 116 | }; |
| 117 | } |
| 118 | |
| 119 | /** |
| 120 | * Build a Fastify `preHandler` that parses `req.params` against `schema`. |
no test coverage detected