TanStackT
TanStackโ€ข2y agoโ€ข
3 replies
uncertain-scarlet

Can you use zod to validate params (not search params but actually params)?

I'm trying to use zod to validate my query parameters.

example URL: /app/project/$projectId
I'm trying to use zod to say that projectId is a number with the following zod schema:
const projectRouteParams = z.object({
projectId: z.number().int().nonnegative(),
});
in my createRoute I define my parseParams like so:
parseParams: params => projectRouteParams.parse(params)

When I try to go to for example "/app/project/1", I get the TanStack router error invalid type for projectId: "Expected number, received string"
It is working if I define my parseParams like this:
parseParams: ({ projectId }) => ({ projectId: Number(projectId) });

I really like to use zod for validating the type of my route params as I am already using it for my searchParams (which are working with zod already)
Any help is appreciated ๐Ÿ™‚
Was this page helpful?