Migration: @kubb/plugin-swr
Part of the v4 → v5 migration guide. For the full option reference, see @kubb/plugin-swr.
@kubb/plugin-swr follows the same conventions as the React Query and Vue Query plugins. resolver.resolveName replaces transformers.name.
SWR has no enabled option. v5 drops the param-presence guard, so the hook keys off shouldFetch alone (useSWR(shouldFetch ? queryKey : null, ...)). Set shouldFetch to false to disable the request.
Removed: paramsType, pathParamsType, paramsCasing
These three options are gone, including client.paramsCasing. Each hook now takes its parameters as a single grouped options object shaped as { path, query, body, headers }, with camelCase property names. This matches the shape @kubb/plugin-fetch already used. Query params move under query, path params under path, the request body under body, and header params under headers.
pluginSwr({
- paramsType: 'object',
- pathParamsType: 'object',
- paramsCasing: 'camelcase',
})Update the call sites. Query params move into query, and path params move into path. When an operation has a required parameter in a group, that group (path, query, or headers) is required too, so an incomplete call fails to compile.
useFindPets({ status: 'available' })
useGetPet(petId)
useUpdatePet().trigger({ petId, data: pet })useFindPets({ query: { status: 'available' } })
useGetPet({ path: { petId } })
useUpdatePet().trigger({ path: { petId }, body: pet })The first argument is typed Omit<XxxRequestConfig, 'url'>, the RequestConfig type @kubb/plugin-ts generates. The trailing config argument is unchanged.