Published: 2025-09-22
Introducing Kubb v4#
Kubb v4 sharpens type safety, schema generation, and query handling. Here is what changed.
Breaking changes#
- Correct use of Infinite Query generics with Tanstack-Query
- Unwrap in Vue infinite query
- Different use of
z.optional
Before:
z.number().int().optional()
After:
z.optional(z.number().int())
- Add
Keysuffix to types when usingasConst
Before:
export const findPetsByStatusQueryParamsStatusEnum = {
available: 'available',
pending: 'pending',
sold: 'sold',
} as const
export type FindPetsByStatusQueryParamsStatusEnum = (typeof findPetsByStatusQueryParamsStatusEnum)[keyof typeof findPetsByStatusQueryParamsStatusEnum]
After:
export const findPetsByStatusQueryParamsStatusEnum = {
available: 'available',
pending: 'pending',
sold: 'sold',
} as const
export type FindPetsByStatusQueryParamsStatusEnumKey = (typeof findPetsByStatusQueryParamsStatusEnum)[keyof typeof findPetsByStatusQueryParamsStatusEnum]