diff --git a/.changeset/tanstack-skiptoken-support.md b/.changeset/tanstack-skiptoken-support.md new file mode 100644 index 0000000000..978e42f418 --- /dev/null +++ b/.changeset/tanstack-skiptoken-support.md @@ -0,0 +1,7 @@ +--- +"@hey-api/openapi-ts": minor +--- + +**plugin(@tanstack/query)**: feat: add `skipToken` support to `queryOptions`, `infiniteQueryOptions`, and the generated `*QueryKey` helpers + +Generated `*Options` factories and exported `*QueryKey` helpers now accept `Options | typeof skipToken`. When `skipToken` is passed, `queryFn` short-circuits to `skipToken` (disabling the query per TanStack Query's conventions) and `queryKey` is built from the unwrapped value via a shared `unwrapSkipToken` helper. Existing call sites passing `Options` continue to work unchanged. diff --git a/examples/openapi-ts-tanstack-angular-query-experimental/src/client/@tanstack/angular-query-experimental.gen.ts b/examples/openapi-ts-tanstack-angular-query-experimental/src/client/@tanstack/angular-query-experimental.gen.ts index 084e544878..145e55c5e1 100644 --- a/examples/openapi-ts-tanstack-angular-query-experimental/src/client/@tanstack/angular-query-experimental.gen.ts +++ b/examples/openapi-ts-tanstack-angular-query-experimental/src/client/@tanstack/angular-query-experimental.gen.ts @@ -4,6 +4,7 @@ import { type DefaultError, type MutationOptions, queryOptions, + skipToken, } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; @@ -150,59 +151,75 @@ const createQueryKey = ( return [params]; }; -export const findPetsByStatusQueryKey = (options: Options) => - createQueryKey('findPetsByStatus', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => + options !== skipToken ? options : undefined; + +export const findPetsByStatusQueryKey = ( + options: Options | typeof skipToken, +) => createQueryKey('findPetsByStatus', unwrapSkipToken(options)); /** * Finds Pets by status. * * Multiple status values can be provided with comma separated strings. */ -export const findPetsByStatusOptions = (options: Options) => - queryOptions< +export const findPetsByStatusOptions = ( + options: Options | typeof skipToken, +) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< FindPetsByStatusResponse, DefaultError, FindPetsByStatusResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await findPetsByStatus({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByStatus({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: findPetsByStatusQueryKey(options), }); +}; -export const findPetsByTagsQueryKey = (options: Options) => - createQueryKey('findPetsByTags', options); +export const findPetsByTagsQueryKey = (options: Options | typeof skipToken) => + createQueryKey('findPetsByTags', unwrapSkipToken(options)); /** * Finds Pets by tags. * * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. */ -export const findPetsByTagsOptions = (options: Options) => - queryOptions< +export const findPetsByTagsOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< FindPetsByTagsResponse, DefaultError, FindPetsByTagsResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await findPetsByTags({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByTags({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: findPetsByTagsQueryKey(options), }); +}; /** * Deletes a pet. @@ -225,32 +242,37 @@ export const deletePetMutation = ( return mutationOptions; }; -export const getPetByIdQueryKey = (options: Options) => - createQueryKey('getPetById', options); +export const getPetByIdQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getPetById', unwrapSkipToken(options)); /** * Find pet by ID. * * Returns a single pet. */ -export const getPetByIdOptions = (options: Options) => - queryOptions< +export const getPetByIdOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetPetByIdResponse, DefaultError, GetPetByIdResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getPetById({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getPetById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getPetByIdQueryKey(options), }); +}; /** * Updates a pet in the store with form data. @@ -302,32 +324,37 @@ export const uploadFileMutation = ( return mutationOptions; }; -export const getInventoryQueryKey = (options?: Options) => - createQueryKey('getInventory', options); +export const getInventoryQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('getInventory', unwrapSkipToken(options)); /** * Returns pet inventories by status. * * Returns a map of status codes to quantities. */ -export const getInventoryOptions = (options?: Options) => - queryOptions< +export const getInventoryOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetInventoryResponse, DefaultError, GetInventoryResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getInventory({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getInventory({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getInventoryQueryKey(options), }); +}; /** * Place an order for a pet. @@ -375,32 +402,37 @@ export const deleteOrderMutation = ( return mutationOptions; }; -export const getOrderByIdQueryKey = (options: Options) => - createQueryKey('getOrderById', options); +export const getOrderByIdQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getOrderById', unwrapSkipToken(options)); /** * Find purchase order by ID. * * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. */ -export const getOrderByIdOptions = (options: Options) => - queryOptions< +export const getOrderByIdOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetOrderByIdResponse, DefaultError, GetOrderByIdResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getOrderById({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getOrderById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getOrderByIdQueryKey(options), }); +}; /** * Create user. @@ -456,54 +488,64 @@ export const createUsersWithListInputMutation = ( return mutationOptions; }; -export const loginUserQueryKey = (options?: Options) => - createQueryKey('loginUser', options); +export const loginUserQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('loginUser', unwrapSkipToken(options)); /** * Logs user into the system. * * Log into the system. */ -export const loginUserOptions = (options?: Options) => - queryOptions< +export const loginUserOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< LoginUserResponse, DefaultError, LoginUserResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await loginUser({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await loginUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: loginUserQueryKey(options), }); +}; -export const logoutUserQueryKey = (options?: Options) => - createQueryKey('logoutUser', options); +export const logoutUserQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('logoutUser', unwrapSkipToken(options)); /** * Logs out current logged in user session. * * Log user out of the system. */ -export const logoutUserOptions = (options?: Options) => - queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await logoutUser({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, +export const logoutUserOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await logoutUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: logoutUserQueryKey(options), }); +}; /** * Delete user resource. @@ -526,32 +568,37 @@ export const deleteUserMutation = ( return mutationOptions; }; -export const getUserByNameQueryKey = (options: Options) => - createQueryKey('getUserByName', options); +export const getUserByNameQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getUserByName', unwrapSkipToken(options)); /** * Get user by user name. * * Get user detail based on username. */ -export const getUserByNameOptions = (options: Options) => - queryOptions< +export const getUserByNameOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetUserByNameResponse, DefaultError, GetUserByNameResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getUserByName({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getUserByName({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getUserByNameQueryKey(options), }); +}; /** * Update user resource. diff --git a/examples/openapi-ts-tanstack-react-query/src/client/@tanstack/react-query.gen.ts b/examples/openapi-ts-tanstack-react-query/src/client/@tanstack/react-query.gen.ts index dc04163d5c..5f521d531b 100644 --- a/examples/openapi-ts-tanstack-react-query/src/client/@tanstack/react-query.gen.ts +++ b/examples/openapi-ts-tanstack-react-query/src/client/@tanstack/react-query.gen.ts @@ -1,6 +1,11 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { + type DefaultError, + queryOptions, + skipToken, + type UseMutationOptions, +} from '@tanstack/react-query'; import { client } from '../client.gen'; import { type Options, Sdk } from '../sdk.gen'; @@ -125,59 +130,75 @@ const createQueryKey = ( return [params]; }; -export const findPetsByStatusQueryKey = (options: Options) => - createQueryKey('findPetsByStatus', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => + options !== skipToken ? options : undefined; + +export const findPetsByStatusQueryKey = ( + options: Options | typeof skipToken, +) => createQueryKey('findPetsByStatus', unwrapSkipToken(options)); /** * Finds Pets by status. * * Multiple status values can be provided with comma separated strings. */ -export const findPetsByStatusOptions = (options: Options) => - queryOptions< +export const findPetsByStatusOptions = ( + options: Options | typeof skipToken, +) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< FindPetsByStatusResponse, DefaultError, FindPetsByStatusResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await Sdk.__registry.get().findPetsByStatus({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().findPetsByStatus({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: findPetsByStatusQueryKey(options), }); +}; -export const findPetsByTagsQueryKey = (options: Options) => - createQueryKey('findPetsByTags', options); +export const findPetsByTagsQueryKey = (options: Options | typeof skipToken) => + createQueryKey('findPetsByTags', unwrapSkipToken(options)); /** * Finds Pets by tags. * * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. */ -export const findPetsByTagsOptions = (options: Options) => - queryOptions< +export const findPetsByTagsOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< FindPetsByTagsResponse, DefaultError, FindPetsByTagsResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await Sdk.__registry.get().findPetsByTags({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().findPetsByTags({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: findPetsByTagsQueryKey(options), }); +}; /** * Deletes a pet. @@ -200,32 +221,37 @@ export const deletePetMutation = ( return mutationOptions; }; -export const getPetByIdQueryKey = (options: Options) => - createQueryKey('getPetById', options); +export const getPetByIdQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getPetById', unwrapSkipToken(options)); /** * Find pet by ID. * * Returns a single pet. */ -export const getPetByIdOptions = (options: Options) => - queryOptions< +export const getPetByIdOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetPetByIdResponse, DefaultError, GetPetByIdResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await Sdk.__registry.get().getPetById({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().getPetById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getPetByIdQueryKey(options), }); +}; /** * Updates a pet in the store with form data. @@ -277,32 +303,37 @@ export const uploadFileMutation = ( return mutationOptions; }; -export const getInventoryQueryKey = (options?: Options) => - createQueryKey('getInventory', options); +export const getInventoryQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('getInventory', unwrapSkipToken(options)); /** * Returns pet inventories by status. * * Returns a map of status codes to quantities. */ -export const getInventoryOptions = (options?: Options) => - queryOptions< +export const getInventoryOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetInventoryResponse, DefaultError, GetInventoryResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await Sdk.__registry.get().getInventory({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().getInventory({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getInventoryQueryKey(options), }); +}; /** * Place an order for a pet. @@ -350,32 +381,37 @@ export const deleteOrderMutation = ( return mutationOptions; }; -export const getOrderByIdQueryKey = (options: Options) => - createQueryKey('getOrderById', options); +export const getOrderByIdQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getOrderById', unwrapSkipToken(options)); /** * Find purchase order by ID. * * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. */ -export const getOrderByIdOptions = (options: Options) => - queryOptions< +export const getOrderByIdOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetOrderByIdResponse, DefaultError, GetOrderByIdResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await Sdk.__registry.get().getOrderById({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().getOrderById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getOrderByIdQueryKey(options), }); +}; /** * Create user. @@ -431,54 +467,64 @@ export const createUsersWithListInputMutation = ( return mutationOptions; }; -export const loginUserQueryKey = (options?: Options) => - createQueryKey('loginUser', options); +export const loginUserQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('loginUser', unwrapSkipToken(options)); /** * Logs user into the system. * * Log into the system. */ -export const loginUserOptions = (options?: Options) => - queryOptions< +export const loginUserOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< LoginUserResponse, DefaultError, LoginUserResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await Sdk.__registry.get().loginUser({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().loginUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: loginUserQueryKey(options), }); +}; -export const logoutUserQueryKey = (options?: Options) => - createQueryKey('logoutUser', options); +export const logoutUserQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('logoutUser', unwrapSkipToken(options)); /** * Logs out current logged in user session. * * Log user out of the system. */ -export const logoutUserOptions = (options?: Options) => - queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await Sdk.__registry.get().logoutUser({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, +export const logoutUserOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().logoutUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: logoutUserQueryKey(options), }); +}; /** * Delete user resource. @@ -501,32 +547,37 @@ export const deleteUserMutation = ( return mutationOptions; }; -export const getUserByNameQueryKey = (options: Options) => - createQueryKey('getUserByName', options); +export const getUserByNameQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getUserByName', unwrapSkipToken(options)); /** * Get user by user name. * * Get user detail based on username. */ -export const getUserByNameOptions = (options: Options) => - queryOptions< +export const getUserByNameOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetUserByNameResponse, DefaultError, GetUserByNameResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await Sdk.__registry.get().getUserByName({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().getUserByName({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getUserByNameQueryKey(options), }); +}; /** * Update user resource. diff --git a/examples/openapi-ts-tanstack-svelte-query/src/client/@tanstack/svelte-query.gen.ts b/examples/openapi-ts-tanstack-svelte-query/src/client/@tanstack/svelte-query.gen.ts index 2f8ca16f8d..3519b64e0f 100644 --- a/examples/openapi-ts-tanstack-svelte-query/src/client/@tanstack/svelte-query.gen.ts +++ b/examples/openapi-ts-tanstack-svelte-query/src/client/@tanstack/svelte-query.gen.ts @@ -1,6 +1,11 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { + type DefaultError, + type MutationOptions, + queryOptions, + skipToken, +} from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { @@ -146,59 +151,75 @@ const createQueryKey = ( return [params]; }; -export const findPetsByStatusQueryKey = (options: Options) => - createQueryKey('findPetsByStatus', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => + options !== skipToken ? options : undefined; + +export const findPetsByStatusQueryKey = ( + options: Options | typeof skipToken, +) => createQueryKey('findPetsByStatus', unwrapSkipToken(options)); /** * Finds Pets by status. * * Multiple status values can be provided with comma separated strings. */ -export const findPetsByStatusOptions = (options: Options) => - queryOptions< +export const findPetsByStatusOptions = ( + options: Options | typeof skipToken, +) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< FindPetsByStatusResponse, DefaultError, FindPetsByStatusResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await findPetsByStatus({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByStatus({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: findPetsByStatusQueryKey(options), }); +}; -export const findPetsByTagsQueryKey = (options: Options) => - createQueryKey('findPetsByTags', options); +export const findPetsByTagsQueryKey = (options: Options | typeof skipToken) => + createQueryKey('findPetsByTags', unwrapSkipToken(options)); /** * Finds Pets by tags. * * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. */ -export const findPetsByTagsOptions = (options: Options) => - queryOptions< +export const findPetsByTagsOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< FindPetsByTagsResponse, DefaultError, FindPetsByTagsResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await findPetsByTags({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByTags({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: findPetsByTagsQueryKey(options), }); +}; /** * Deletes a pet. @@ -221,32 +242,37 @@ export const deletePetMutation = ( return mutationOptions; }; -export const getPetByIdQueryKey = (options: Options) => - createQueryKey('getPetById', options); +export const getPetByIdQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getPetById', unwrapSkipToken(options)); /** * Find pet by ID. * * Returns a single pet. */ -export const getPetByIdOptions = (options: Options) => - queryOptions< +export const getPetByIdOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetPetByIdResponse, DefaultError, GetPetByIdResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getPetById({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getPetById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getPetByIdQueryKey(options), }); +}; /** * Updates a pet in the store with form data. @@ -298,32 +324,37 @@ export const uploadFileMutation = ( return mutationOptions; }; -export const getInventoryQueryKey = (options?: Options) => - createQueryKey('getInventory', options); +export const getInventoryQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('getInventory', unwrapSkipToken(options)); /** * Returns pet inventories by status. * * Returns a map of status codes to quantities. */ -export const getInventoryOptions = (options?: Options) => - queryOptions< +export const getInventoryOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetInventoryResponse, DefaultError, GetInventoryResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getInventory({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getInventory({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getInventoryQueryKey(options), }); +}; /** * Place an order for a pet. @@ -371,32 +402,37 @@ export const deleteOrderMutation = ( return mutationOptions; }; -export const getOrderByIdQueryKey = (options: Options) => - createQueryKey('getOrderById', options); +export const getOrderByIdQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getOrderById', unwrapSkipToken(options)); /** * Find purchase order by ID. * * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. */ -export const getOrderByIdOptions = (options: Options) => - queryOptions< +export const getOrderByIdOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetOrderByIdResponse, DefaultError, GetOrderByIdResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getOrderById({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getOrderById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getOrderByIdQueryKey(options), }); +}; /** * Create user. @@ -452,54 +488,64 @@ export const createUsersWithListInputMutation = ( return mutationOptions; }; -export const loginUserQueryKey = (options?: Options) => - createQueryKey('loginUser', options); +export const loginUserQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('loginUser', unwrapSkipToken(options)); /** * Logs user into the system. * * Log into the system. */ -export const loginUserOptions = (options?: Options) => - queryOptions< +export const loginUserOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< LoginUserResponse, DefaultError, LoginUserResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await loginUser({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await loginUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: loginUserQueryKey(options), }); +}; -export const logoutUserQueryKey = (options?: Options) => - createQueryKey('logoutUser', options); +export const logoutUserQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('logoutUser', unwrapSkipToken(options)); /** * Logs out current logged in user session. * * Log user out of the system. */ -export const logoutUserOptions = (options?: Options) => - queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await logoutUser({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, +export const logoutUserOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await logoutUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: logoutUserQueryKey(options), }); +}; /** * Delete user resource. @@ -522,32 +568,37 @@ export const deleteUserMutation = ( return mutationOptions; }; -export const getUserByNameQueryKey = (options: Options) => - createQueryKey('getUserByName', options); +export const getUserByNameQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getUserByName', unwrapSkipToken(options)); /** * Get user by user name. * * Get user detail based on username. */ -export const getUserByNameOptions = (options: Options) => - queryOptions< +export const getUserByNameOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetUserByNameResponse, DefaultError, GetUserByNameResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getUserByName({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getUserByName({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getUserByNameQueryKey(options), }); +}; /** * Update user resource. diff --git a/examples/openapi-ts-tanstack-vue-query/src/client/@tanstack/vue-query.gen.ts b/examples/openapi-ts-tanstack-vue-query/src/client/@tanstack/vue-query.gen.ts index 06084d7522..29aabbbb72 100644 --- a/examples/openapi-ts-tanstack-vue-query/src/client/@tanstack/vue-query.gen.ts +++ b/examples/openapi-ts-tanstack-vue-query/src/client/@tanstack/vue-query.gen.ts @@ -1,6 +1,11 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { + type DefaultError, + queryOptions, + skipToken, + type UseMutationOptions, +} from '@tanstack/vue-query'; import { client } from '../client.gen'; import { @@ -146,59 +151,75 @@ const createQueryKey = ( return [params]; }; -export const findPetsByStatusQueryKey = (options: Options) => - createQueryKey('findPetsByStatus', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => + options !== skipToken ? options : undefined; + +export const findPetsByStatusQueryKey = ( + options: Options | typeof skipToken, +) => createQueryKey('findPetsByStatus', unwrapSkipToken(options)); /** * Finds Pets by status. * * Multiple status values can be provided with comma separated strings. */ -export const findPetsByStatusOptions = (options: Options) => - queryOptions< +export const findPetsByStatusOptions = ( + options: Options | typeof skipToken, +) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< FindPetsByStatusResponse, DefaultError, FindPetsByStatusResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await findPetsByStatus({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByStatus({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: findPetsByStatusQueryKey(options), }); +}; -export const findPetsByTagsQueryKey = (options: Options) => - createQueryKey('findPetsByTags', options); +export const findPetsByTagsQueryKey = (options: Options | typeof skipToken) => + createQueryKey('findPetsByTags', unwrapSkipToken(options)); /** * Finds Pets by tags. * * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. */ -export const findPetsByTagsOptions = (options: Options) => - queryOptions< +export const findPetsByTagsOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< FindPetsByTagsResponse, DefaultError, FindPetsByTagsResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await findPetsByTags({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByTags({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: findPetsByTagsQueryKey(options), }); +}; /** * Deletes a pet. @@ -221,32 +242,37 @@ export const deletePetMutation = ( return mutationOptions; }; -export const getPetByIdQueryKey = (options: Options) => - createQueryKey('getPetById', options); +export const getPetByIdQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getPetById', unwrapSkipToken(options)); /** * Find pet by ID. * * Returns a single pet. */ -export const getPetByIdOptions = (options: Options) => - queryOptions< +export const getPetByIdOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetPetByIdResponse, DefaultError, GetPetByIdResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getPetById({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getPetById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getPetByIdQueryKey(options), }); +}; /** * Updates a pet in the store with form data. @@ -298,32 +324,37 @@ export const uploadFileMutation = ( return mutationOptions; }; -export const getInventoryQueryKey = (options?: Options) => - createQueryKey('getInventory', options); +export const getInventoryQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('getInventory', unwrapSkipToken(options)); /** * Returns pet inventories by status. * * Returns a map of status codes to quantities. */ -export const getInventoryOptions = (options?: Options) => - queryOptions< +export const getInventoryOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetInventoryResponse, DefaultError, GetInventoryResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getInventory({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getInventory({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getInventoryQueryKey(options), }); +}; /** * Place an order for a pet. @@ -371,32 +402,37 @@ export const deleteOrderMutation = ( return mutationOptions; }; -export const getOrderByIdQueryKey = (options: Options) => - createQueryKey('getOrderById', options); +export const getOrderByIdQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getOrderById', unwrapSkipToken(options)); /** * Find purchase order by ID. * * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. */ -export const getOrderByIdOptions = (options: Options) => - queryOptions< +export const getOrderByIdOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetOrderByIdResponse, DefaultError, GetOrderByIdResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getOrderById({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getOrderById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getOrderByIdQueryKey(options), }); +}; /** * Create user. @@ -452,54 +488,64 @@ export const createUsersWithListInputMutation = ( return mutationOptions; }; -export const loginUserQueryKey = (options?: Options) => - createQueryKey('loginUser', options); +export const loginUserQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('loginUser', unwrapSkipToken(options)); /** * Logs user into the system. * * Log into the system. */ -export const loginUserOptions = (options?: Options) => - queryOptions< +export const loginUserOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< LoginUserResponse, DefaultError, LoginUserResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await loginUser({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await loginUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: loginUserQueryKey(options), }); +}; -export const logoutUserQueryKey = (options?: Options) => - createQueryKey('logoutUser', options); +export const logoutUserQueryKey = (options?: Options | typeof skipToken) => + createQueryKey('logoutUser', unwrapSkipToken(options)); /** * Logs out current logged in user session. * * Log user out of the system. */ -export const logoutUserOptions = (options?: Options) => - queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await logoutUser({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, +export const logoutUserOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await logoutUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: logoutUserQueryKey(options), }); +}; /** * Delete user resource. @@ -522,32 +568,37 @@ export const deleteUserMutation = ( return mutationOptions; }; -export const getUserByNameQueryKey = (options: Options) => - createQueryKey('getUserByName', options); +export const getUserByNameQueryKey = (options: Options | typeof skipToken) => + createQueryKey('getUserByName', unwrapSkipToken(options)); /** * Get user by user name. * * Get user detail based on username. */ -export const getUserByNameOptions = (options: Options) => - queryOptions< +export const getUserByNameOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions< GetUserByNameResponse, DefaultError, GetUserByNameResponse, ReturnType >({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getUserByName({ - ...options, - ...queryKey[0], - signal, - throwOnError: true, - }); - return data; - }, + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getUserByName({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, queryKey: getUserByNameQueryKey(options), }); +}; /** * Update user resource. diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts index ac5127274b..203c13874d 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/preact-query.gen.ts index 92fa2c6b00..76e29f4e7e 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/react-query.gen.ts index 486657ead7..2e5565acc9 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/solid-query.gen.ts index d5594064cc..3edd143e7e 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/svelte-query.gen.ts index 3e29275971..c3c06a6c5c 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/vue-query.gen.ts index 2e82ca3558..d2fa0aeb55 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/asClass/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts index cef8fd3635..69f2fc4246 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,20 +102,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -196,20 +204,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -253,20 +264,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -296,80 +310,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -399,50 +428,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/preact-query.gen.ts index 3bf40b1ad0..df02802dc8 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,20 +102,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -196,20 +204,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -253,20 +264,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -296,80 +310,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -399,50 +428,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/react-query.gen.ts index da398d1700..0b742cc285 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,20 +102,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -196,20 +204,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -253,20 +264,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -296,80 +310,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -399,50 +428,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/solid-query.gen.ts index 7a51e436a3..18c8daa8d4 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,20 +102,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -196,20 +204,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -253,20 +264,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -296,80 +310,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -399,50 +428,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/svelte-query.gen.ts index 8900d4a581..f44e15bb97 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,20 +102,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -196,20 +204,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -253,20 +264,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -296,80 +310,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -399,50 +428,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/vue-query.gen.ts index 5a5ce3b118..097ddce236 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/axios/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,20 +102,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -196,20 +204,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -253,20 +264,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -296,80 +310,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -399,50 +428,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts index 5087360ef7..c49742cda8 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexTypes, deleteCallWithoutParametersAndResponse, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, fooWow, getCallWithoutParametersAndResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionBody, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, serviceWithEmptyTag, testErrorCode, types } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,20 +101,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -195,20 +203,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -252,20 +263,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -295,80 +309,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -398,50 +427,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/preact-query.gen.ts index c3a6821f4c..a0d37399ca 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexTypes, deleteCallWithoutParametersAndResponse, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, fooWow, getCallWithoutParametersAndResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionBody, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, serviceWithEmptyTag, testErrorCode, types } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,20 +101,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -195,20 +203,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -252,20 +263,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -295,80 +309,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -398,50 +427,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/react-query.gen.ts index ef023fe2c6..ce9e9b53d4 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexTypes, deleteCallWithoutParametersAndResponse, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, fooWow, getCallWithoutParametersAndResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionBody, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, serviceWithEmptyTag, testErrorCode, types } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,20 +101,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -195,20 +203,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -252,20 +263,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -295,80 +309,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -398,50 +427,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/solid-query.gen.ts index c4092a30b9..51637fc179 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexTypes, deleteCallWithoutParametersAndResponse, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, fooWow, getCallWithoutParametersAndResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionBody, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, serviceWithEmptyTag, testErrorCode, types } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,20 +101,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -195,20 +203,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -252,20 +263,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -295,80 +309,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -398,50 +427,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/svelte-query.gen.ts index e14c0d70c0..9753bfd34b 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexTypes, deleteCallWithoutParametersAndResponse, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, fooWow, getCallWithoutParametersAndResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionBody, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, serviceWithEmptyTag, testErrorCode, types } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,20 +101,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -195,20 +203,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -252,20 +263,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -295,80 +309,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -398,50 +427,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/vue-query.gen.ts index b545d18172..74147c873c 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/fetch/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexTypes, deleteCallWithoutParametersAndResponse, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, fooWow, getCallWithoutParametersAndResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionBody, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, serviceWithEmptyTag, testErrorCode, types } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,20 +101,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -195,20 +203,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -252,20 +263,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -295,80 +309,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -398,50 +427,59 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const callWithResultFromHeaderMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/full-config/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/full-config/@tanstack/react-query.gen.ts index 0e0db940ce..bce23f81a1 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/full-config/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/full-config/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type QueryClient, queryOptions, useMutation, type UseMutationOptions, useQuery, useQueryClient } from '@tanstack/react-query'; +import { type DefaultError, type QueryClient, queryOptions, skipToken, useMutation, type UseMutationOptions, useQuery, useQueryClient } from '@tanstack/react-query'; import { client } from '../client.gen'; import { callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexTypes, deleteCallWithoutParametersAndResponse, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, fooWow, getCallWithoutParametersAndResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionBody, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, serviceWithEmptyTag, testErrorCode, types } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const serviceWithEmptyTagOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await serviceWithEmptyTag({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: serviceWithEmptyTagQueryKey(options) -}); +export const serviceWithEmptyTagQueryKey = (options?: Options | typeof skipToken) => createQueryKey('serviceWithEmptyTag', unwrapSkipToken(options)); + +export const serviceWithEmptyTagOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await serviceWithEmptyTag({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: serviceWithEmptyTagQueryKey(options) + }); +}; export const serviceWithEmptyTagGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(serviceWithEmptyTagOptions(options).queryKey); @@ -63,7 +68,7 @@ export const useServiceWithEmptyTagGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(serviceWithEmptyTagOptions(options).queryKey); }; -export const useServiceWithEmptyTagQuery = (options?: Options) => useQuery(serviceWithEmptyTagOptions(options)); +export const useServiceWithEmptyTagQuery = (options?: Options | typeof skipToken) => useQuery(serviceWithEmptyTagOptions(options)); export const useServiceWithEmptyTagSetQueryData = () => { const queryClient = useQueryClient(); @@ -156,20 +161,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const useDeleteCallWithoutParametersAndResponseMutation = (mutationOptions?: Partial>, 'mutationFn'>>) => useMutation({ ...deleteCallWithoutParametersAndResponseMutation(), ...mutationOptions }); -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); - -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); + +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const getCallWithoutParametersAndResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(getCallWithoutParametersAndResponseOptions(options).queryKey); @@ -180,7 +188,7 @@ export const useGetCallWithoutParametersAndResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(getCallWithoutParametersAndResponseOptions(options).queryKey); }; -export const useGetCallWithoutParametersAndResponseQuery = (options?: Options) => useQuery(getCallWithoutParametersAndResponseOptions(options)); +export const useGetCallWithoutParametersAndResponseQuery = (options?: Options | typeof skipToken) => useQuery(getCallWithoutParametersAndResponseOptions(options)); export const useGetCallWithoutParametersAndResponseSetQueryData = () => { const queryClient = useQueryClient(); @@ -301,20 +309,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...callWithWeirdParameterNamesMutation(), ...mutationOptions }); -export const callWithDefaultParametersQueryKey = (options: Options) => createQueryKey('callWithDefaultParameters', options); - -export const callWithDefaultParametersOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersQueryKey = (options: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); + +export const callWithDefaultParametersOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultParametersGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(callWithDefaultParametersOptions(options).queryKey); @@ -325,7 +336,7 @@ export const useCallWithDefaultParametersGetQueryData = () => { return (options: Options) => queryClient.getQueryData(callWithDefaultParametersOptions(options).queryKey); }; -export const useCallWithDefaultParametersQuery = (options: Options) => useQuery(callWithDefaultParametersOptions(options)); +export const useCallWithDefaultParametersQuery = (options: Options | typeof skipToken) => useQuery(callWithDefaultParametersOptions(options)); export const useCallWithDefaultParametersSetQueryData = () => { const queryClient = useQueryClient(); @@ -389,20 +400,23 @@ export const duplicateNameMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...duplicateNameMutation(), ...mutationOptions }); -export const duplicateName2QueryKey = (options?: Options) => createQueryKey('duplicateName2', options); - -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); + +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName2GetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(duplicateName2Options(options).queryKey); @@ -413,7 +427,7 @@ export const useDuplicateName2GetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(duplicateName2Options(options).queryKey); }; -export const useDuplicateName2Query = (options?: Options) => useQuery(duplicateName2Options(options)); +export const useDuplicateName2Query = (options?: Options | typeof skipToken) => useQuery(duplicateName2Options(options)); export const useDuplicateName2SetQueryData = () => { const queryClient = useQueryClient(); @@ -458,20 +472,23 @@ export const duplicateName4Mutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...duplicateName4Mutation(), ...mutationOptions }); -export const callWithNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; export const callWithNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); @@ -482,27 +499,30 @@ export const useCallWithNoContentResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); }; -export const useCallWithNoContentResponseQuery = (options?: Options) => useQuery(callWithNoContentResponseOptions(options)); +export const useCallWithNoContentResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithNoContentResponseOptions(options)); export const useCallWithNoContentResponseSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: unknown | undefined | ((old: unknown | undefined) => unknown | undefined)) => queryClient.setQueryData(callWithNoContentResponseOptions(options).queryKey, updater); }; -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; export const callWithResponseAndNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); @@ -513,27 +533,30 @@ export const useCallWithResponseAndNoContentResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); }; -export const useCallWithResponseAndNoContentResponseQuery = (options?: Options) => useQuery(callWithResponseAndNoContentResponseOptions(options)); +export const useCallWithResponseAndNoContentResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithResponseAndNoContentResponseOptions(options)); export const useCallWithResponseAndNoContentResponseSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: CallWithResponseAndNoContentResponseResponse | undefined | ((old: CallWithResponseAndNoContentResponseResponse | undefined) => CallWithResponseAndNoContentResponseResponse | undefined)) => queryClient.setQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey, updater); }; -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; export const dummyAGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); @@ -544,27 +567,30 @@ export const useDummyAGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); }; -export const useDummyAQuery = (options?: Options) => useQuery(dummyAOptions(options)); +export const useDummyAQuery = (options?: Options | typeof skipToken) => useQuery(dummyAOptions(options)); export const useDummyASetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: unknown | undefined | ((old: unknown | undefined) => unknown | undefined)) => queryClient.setQueryData(dummyAOptions(options).queryKey, updater); }; -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; export const dummyBGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); @@ -575,27 +601,30 @@ export const useDummyBGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); }; -export const useDummyBQuery = (options?: Options) => useQuery(dummyBOptions(options)); +export const useDummyBQuery = (options?: Options | typeof skipToken) => useQuery(dummyBOptions(options)); export const useDummyBSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: unknown | undefined | ((old: unknown | undefined) => unknown | undefined)) => queryClient.setQueryData(dummyBOptions(options).queryKey, updater); }; -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseOptions(options).queryKey); @@ -606,7 +635,7 @@ export const useCallWithResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithResponseOptions(options).queryKey); }; -export const useCallWithResponseQuery = (options?: Options) => useQuery(callWithResponseOptions(options)); +export const useCallWithResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithResponseOptions(options)); export const useCallWithResponseSetQueryData = () => { const queryClient = useQueryClient(); @@ -651,20 +680,23 @@ export const callWithResponsesMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...callWithResponsesMutation(), ...mutationOptions }); -export const collectionFormatQueryKey = (options: Options) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; export const collectionFormatGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); @@ -675,27 +707,30 @@ export const useCollectionFormatGetQueryData = () => { return (options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); }; -export const useCollectionFormatQuery = (options: Options) => useQuery(collectionFormatOptions(options)); +export const useCollectionFormatQuery = (options: Options | typeof skipToken) => useQuery(collectionFormatOptions(options)); export const useCollectionFormatSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options, updater: unknown | undefined | ((old: unknown | undefined) => unknown | undefined)) => queryClient.setQueryData(collectionFormatOptions(options).queryKey, updater); }; -export const typesQueryKey = (options: Options) => createQueryKey('types', options); +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const typesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(typesOptions(options).queryKey); @@ -706,27 +741,30 @@ export const useTypesGetQueryData = () => { return (options: Options) => queryClient.getQueryData(typesOptions(options).queryKey); }; -export const useTypesQuery = (options: Options) => useQuery(typesOptions(options)); +export const useTypesQuery = (options: Options | typeof skipToken) => useQuery(typesOptions(options)); export const useTypesSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options, updater: TypesResponse | undefined | ((old: TypesResponse | undefined) => TypesResponse | undefined)) => queryClient.setQueryData(typesOptions(options).queryKey, updater); }; -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const complexTypesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(complexTypesOptions(options).queryKey); @@ -737,7 +775,7 @@ export const useComplexTypesGetQueryData = () => { return (options: Options) => queryClient.getQueryData(complexTypesOptions(options).queryKey); }; -export const useComplexTypesQuery = (options: Options) => useQuery(complexTypesOptions(options)); +export const useComplexTypesQuery = (options: Options | typeof skipToken) => useQuery(complexTypesOptions(options)); export const useComplexTypesSetQueryData = () => { const queryClient = useQueryClient(); diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts index b144ed7a2c..846973c6ac 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/preact-query.gen.ts index 5552d69766..f29b518f13 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/react-query.gen.ts index 43c90277c2..3d227e2c1d 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/solid-query.gen.ts index ba1febdda4..fa46410482 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/svelte-query.gen.ts index 6a831b5b3e..bfd4e0dcce 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/vue-query.gen.ts index bfd35f1d62..b1eefa4ee4 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/2.0.x/plugins/name-builder/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/internal-name-conflict/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/internal-name-conflict/@tanstack/react-query.gen.ts index c7e01dadfe..6dfb38879e 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/internal-name-conflict/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/internal-name-conflict/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { create, create2, create3, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const createQueryKey2 = (options?: Options) => createQueryKey('create', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const createOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await create({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: createQueryKey2(options) -}); +export const createQueryKey2 = (options?: Options | typeof skipToken) => createQueryKey('create', unwrapSkipToken(options)); + +export const createOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await create({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: createQueryKey2(options) + }); +}; export const create2Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts index ac5127274b..203c13874d 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/preact-query.gen.ts index 92fa2c6b00..76e29f4e7e 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/react-query.gen.ts index 486657ead7..2e5565acc9 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/solid-query.gen.ts index d5594064cc..3edd143e7e 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/svelte-query.gen.ts index 3e29275971..c3c06a6c5c 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/vue-query.gen.ts index 2e82ca3558..d2fa0aeb55 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/asClass/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts index 5b07cde6a8..dc575124c8 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/preact-query.gen.ts index 586296750d..fb1227eda2 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/react-query.gen.ts index 38403265b8..020586b8d5 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/solid-query.gen.ts index 203534a865..0d612db4eb 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/svelte-query.gen.ts index 9e78e66d27..79fd100b08 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/vue-query.gen.ts index f839621a3d..afad09aa85 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/axios/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts index 6cc80fb17d..fd4dec7406 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/preact-query.gen.ts index 33d1fb83e9..28a123fba8 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/react-query.gen.ts index 378082bd09..e5143dc615 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/solid-query.gen.ts index 358caac28f..a89249256b 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/svelte-query.gen.ts index 7e81c37313..982de4106b 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/vue-query.gen.ts index bbcab4d5a3..d24b4c4270 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/fetch/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/full-config/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/full-config/@tanstack/react-query.gen.ts index 32a7c7cf24..b82e2bd8e1 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/full-config/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/full-config/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type QueryClient, queryOptions, useMutation, type UseMutationOptions, useQuery, useQueryClient } from '@tanstack/react-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type QueryClient, queryOptions, skipToken, useMutation, type UseMutationOptions, useQuery, useQueryClient } from '@tanstack/react-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const exportGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(exportOptions(options).queryKey); @@ -63,7 +68,7 @@ export const useExportGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(exportOptions(options).queryKey); }; -export const useExportQuery = (options?: Options) => useQuery(exportOptions(options)); +export const useExportQuery = (options?: Options | typeof skipToken) => useQuery(exportOptions(options)); export const useExportSetQueryData = () => { const queryClient = useQueryClient(); @@ -156,20 +161,23 @@ export const fooWowMutation = (options?: Partial>): UseMutat export const useFooWowMutation = (mutationOptions?: Partial>, 'mutationFn'>>) => useMutation({ ...fooWowMutation(), ...mutationOptions }); -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; export const apiVVersionODataControllerCountGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(apiVVersionODataControllerCountOptions(options).queryKey); @@ -180,27 +188,30 @@ export const useApiVVersionODataControllerCountGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(apiVVersionODataControllerCountOptions(options).queryKey); }; -export const useApiVVersionODataControllerCountQuery = (options?: Options) => useQuery(apiVVersionODataControllerCountOptions(options)); +export const useApiVVersionODataControllerCountQuery = (options?: Options | typeof skipToken) => useQuery(apiVVersionODataControllerCountOptions(options)); export const useApiVVersionODataControllerCountSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: ApiVVersionODataControllerCountResponse | undefined | ((old: ApiVVersionODataControllerCountResponse | undefined) => ApiVVersionODataControllerCountResponse | undefined)) => queryClient.setQueryData(apiVVersionODataControllerCountOptions(options).queryKey, updater); }; -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const getApiVbyApiVersionSimpleOperationGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(getApiVbyApiVersionSimpleOperationOptions(options).queryKey); @@ -211,7 +222,7 @@ export const useGetApiVbyApiVersionSimpleOperationGetQueryData = () => { return (options: Options) => queryClient.getQueryData(getApiVbyApiVersionSimpleOperationOptions(options).queryKey); }; -export const useGetApiVbyApiVersionSimpleOperationQuery = (options: Options) => useQuery(getApiVbyApiVersionSimpleOperationOptions(options)); +export const useGetApiVbyApiVersionSimpleOperationQuery = (options: Options | typeof skipToken) => useQuery(getApiVbyApiVersionSimpleOperationOptions(options)); export const useGetApiVbyApiVersionSimpleOperationSetQueryData = () => { const queryClient = useQueryClient(); @@ -237,20 +248,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const useDeleteCallWithoutParametersAndResponseMutation = (mutationOptions?: Partial>, 'mutationFn'>>) => useMutation({ ...deleteCallWithoutParametersAndResponseMutation(), ...mutationOptions }); -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); - -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); + +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const getCallWithoutParametersAndResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(getCallWithoutParametersAndResponseOptions(options).queryKey); @@ -261,7 +275,7 @@ export const useGetCallWithoutParametersAndResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(getCallWithoutParametersAndResponseOptions(options).queryKey); }; -export const useGetCallWithoutParametersAndResponseQuery = (options?: Options) => useQuery(getCallWithoutParametersAndResponseOptions(options)); +export const useGetCallWithoutParametersAndResponseQuery = (options?: Options | typeof skipToken) => useQuery(getCallWithoutParametersAndResponseOptions(options)); export const useGetCallWithoutParametersAndResponseSetQueryData = () => { const queryClient = useQueryClient(); @@ -426,20 +440,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...callWithWeirdParameterNamesMutation(), ...mutationOptions }); -export const getCallWithOptionalParamQueryKey = (options: Options) => createQueryKey('getCallWithOptionalParam', options); - -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); + +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -470,29 +487,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const getCallWithOptionalParamGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(getCallWithOptionalParamOptions(options).queryKey); @@ -503,7 +523,7 @@ export const useGetCallWithOptionalParamGetQueryData = () => { return (options: Options) => queryClient.getQueryData(getCallWithOptionalParamOptions(options).queryKey); }; -export const useGetCallWithOptionalParamQuery = (options: Options) => useQuery(getCallWithOptionalParamOptions(options)); +export const useGetCallWithOptionalParamQuery = (options: Options | typeof skipToken) => useQuery(getCallWithOptionalParamOptions(options)); export const useGetCallWithOptionalParamSetQueryData = () => { const queryClient = useQueryClient(); @@ -567,20 +587,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...postApiVbyApiVersionFormDataMutation(), ...mutationOptions }); -export const callWithDefaultParametersQueryKey = (options?: Options) => createQueryKey('callWithDefaultParameters', options); - -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); + +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultParametersGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithDefaultParametersOptions(options).queryKey); @@ -591,7 +614,7 @@ export const useCallWithDefaultParametersGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithDefaultParametersOptions(options).queryKey); }; -export const useCallWithDefaultParametersQuery = (options?: Options) => useQuery(callWithDefaultParametersOptions(options)); +export const useCallWithDefaultParametersQuery = (options?: Options | typeof skipToken) => useQuery(callWithDefaultParametersOptions(options)); export const useCallWithDefaultParametersSetQueryData = () => { const queryClient = useQueryClient(); @@ -655,20 +678,23 @@ export const duplicateNameMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...duplicateNameMutation(), ...mutationOptions }); -export const duplicateName2QueryKey = (options?: Options) => createQueryKey('duplicateName2', options); - -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); + +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName2GetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(duplicateName2Options(options).queryKey); @@ -679,7 +705,7 @@ export const useDuplicateName2GetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(duplicateName2Options(options).queryKey); }; -export const useDuplicateName2Query = (options?: Options) => useQuery(duplicateName2Options(options)); +export const useDuplicateName2Query = (options?: Options | typeof skipToken) => useQuery(duplicateName2Options(options)); export const useDuplicateName2SetQueryData = () => { const queryClient = useQueryClient(); @@ -724,20 +750,23 @@ export const duplicateName4Mutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...duplicateName4Mutation(), ...mutationOptions }); -export const callWithNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; export const callWithNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); @@ -748,27 +777,30 @@ export const useCallWithNoContentResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); }; -export const useCallWithNoContentResponseQuery = (options?: Options) => useQuery(callWithNoContentResponseOptions(options)); +export const useCallWithNoContentResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithNoContentResponseOptions(options)); export const useCallWithNoContentResponseSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: CallWithNoContentResponseResponse | undefined | ((old: CallWithNoContentResponseResponse | undefined) => CallWithNoContentResponseResponse | undefined)) => queryClient.setQueryData(callWithNoContentResponseOptions(options).queryKey, updater); }; -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; export const callWithResponseAndNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); @@ -779,27 +811,30 @@ export const useCallWithResponseAndNoContentResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); }; -export const useCallWithResponseAndNoContentResponseQuery = (options?: Options) => useQuery(callWithResponseAndNoContentResponseOptions(options)); +export const useCallWithResponseAndNoContentResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithResponseAndNoContentResponseOptions(options)); export const useCallWithResponseAndNoContentResponseSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: CallWithResponseAndNoContentResponseResponse | undefined | ((old: CallWithResponseAndNoContentResponseResponse | undefined) => CallWithResponseAndNoContentResponseResponse | undefined)) => queryClient.setQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey, updater); }; -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; export const dummyAGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); @@ -810,27 +845,30 @@ export const useDummyAGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); }; -export const useDummyAQuery = (options?: Options) => useQuery(dummyAOptions(options)); +export const useDummyAQuery = (options?: Options | typeof skipToken) => useQuery(dummyAOptions(options)); export const useDummyASetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: DummyAResponse | undefined | ((old: DummyAResponse | undefined) => DummyAResponse | undefined)) => queryClient.setQueryData(dummyAOptions(options).queryKey, updater); }; -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; export const dummyBGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); @@ -841,27 +879,30 @@ export const useDummyBGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); }; -export const useDummyBQuery = (options?: Options) => useQuery(dummyBOptions(options)); +export const useDummyBQuery = (options?: Options | typeof skipToken) => useQuery(dummyBOptions(options)); export const useDummyBSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: DummyBResponse | undefined | ((old: DummyBResponse | undefined) => DummyBResponse | undefined)) => queryClient.setQueryData(dummyBOptions(options).queryKey, updater); }; -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseOptions(options).queryKey); @@ -872,7 +913,7 @@ export const useCallWithResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithResponseOptions(options).queryKey); }; -export const useCallWithResponseQuery = (options?: Options) => useQuery(callWithResponseOptions(options)); +export const useCallWithResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithResponseOptions(options)); export const useCallWithResponseSetQueryData = () => { const queryClient = useQueryClient(); @@ -917,20 +958,23 @@ export const callWithResponsesMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...callWithResponsesMutation(), ...mutationOptions }); -export const collectionFormatQueryKey = (options: Options) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; export const collectionFormatGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); @@ -941,27 +985,30 @@ export const useCollectionFormatGetQueryData = () => { return (options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); }; -export const useCollectionFormatQuery = (options: Options) => useQuery(collectionFormatOptions(options)); +export const useCollectionFormatQuery = (options: Options | typeof skipToken) => useQuery(collectionFormatOptions(options)); export const useCollectionFormatSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options, updater: unknown | undefined | ((old: unknown | undefined) => unknown | undefined)) => queryClient.setQueryData(collectionFormatOptions(options).queryKey, updater); }; -export const typesQueryKey = (options: Options) => createQueryKey('types', options); +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const typesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(typesOptions(options).queryKey); @@ -972,7 +1019,7 @@ export const useTypesGetQueryData = () => { return (options: Options) => queryClient.getQueryData(typesOptions(options).queryKey); }; -export const useTypesQuery = (options: Options) => useQuery(typesOptions(options)); +export const useTypesQuery = (options: Options | typeof skipToken) => useQuery(typesOptions(options)); export const useTypesSetQueryData = () => { const queryClient = useQueryClient(); @@ -998,20 +1045,23 @@ export const uploadFileMutation = (options?: Partial>): export const useUploadFileMutation = (mutationOptions?: Partial>, 'mutationFn'>>) => useMutation({ ...uploadFileMutation(), ...mutationOptions }); -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; export const fileResponseGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(fileResponseOptions(options).queryKey); @@ -1022,27 +1072,30 @@ export const useFileResponseGetQueryData = () => { return (options: Options) => queryClient.getQueryData(fileResponseOptions(options).queryKey); }; -export const useFileResponseQuery = (options: Options) => useQuery(fileResponseOptions(options)); +export const useFileResponseQuery = (options: Options | typeof skipToken) => useQuery(fileResponseOptions(options)); export const useFileResponseSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options, updater: FileResponseResponse | undefined | ((old: FileResponseResponse | undefined) => FileResponseResponse | undefined)) => queryClient.setQueryData(fileResponseOptions(options).queryKey, updater); }; -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const complexTypesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(complexTypesOptions(options).queryKey); @@ -1053,27 +1106,30 @@ export const useComplexTypesGetQueryData = () => { return (options: Options) => queryClient.getQueryData(complexTypesOptions(options).queryKey); }; -export const useComplexTypesQuery = (options: Options) => useQuery(complexTypesOptions(options)); +export const useComplexTypesQuery = (options: Options | typeof skipToken) => useQuery(complexTypesOptions(options)); export const useComplexTypesSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options, updater: ComplexTypesResponse | undefined | ((old: ComplexTypesResponse | undefined) => ComplexTypesResponse | undefined)) => queryClient.setQueryData(complexTypesOptions(options).queryKey, updater); }; -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(multipartResponseOptions(options).queryKey); @@ -1084,7 +1140,7 @@ export const useMultipartResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(multipartResponseOptions(options).queryKey); }; -export const useMultipartResponseQuery = (options?: Options) => useQuery(multipartResponseOptions(options)); +export const useMultipartResponseQuery = (options?: Options | typeof skipToken) => useQuery(multipartResponseOptions(options)); export const useMultipartResponseSetQueryData = () => { const queryClient = useQueryClient(); diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts index b144ed7a2c..846973c6ac 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/preact-query.gen.ts index 5552d69766..f29b518f13 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/react-query.gen.ts index 43c90277c2..3d227e2c1d 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/solid-query.gen.ts index ba1febdda4..fa46410482 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/svelte-query.gen.ts index 6a831b5b3e..bfd4e0dcce 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/vue-query.gen.ts index bfd35f1d62..b1eefa4ee4 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.0.x/plugins/name-builder/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/internal-name-conflict/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/internal-name-conflict/@tanstack/react-query.gen.ts index c7e01dadfe..6dfb38879e 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/internal-name-conflict/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/internal-name-conflict/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { create, create2, create3, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const createQueryKey2 = (options?: Options) => createQueryKey('create', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const createOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await create({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: createQueryKey2(options) -}); +export const createQueryKey2 = (options?: Options | typeof skipToken) => createQueryKey('create', unwrapSkipToken(options)); + +export const createOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await create({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: createQueryKey2(options) + }); +}; export const create2Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/angular-query-experimental/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/angular-query-experimental/@tanstack/angular-query-experimental.gen.ts index a168141ebe..8b58b29cb7 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/angular-query-experimental/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/angular-query-experimental/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { getBar, getFoo, type Options } from '../sdk.gen'; @@ -39,42 +39,50 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options), - meta: { - id: 'getFoo', - method: 'get', - path: '/foo' - } -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); -export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; -export const getBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getBarQueryKey(options), - meta: { - id: 'getBar', - method: 'get', - path: '/bar' - } -}); +export const getBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getBar', unwrapSkipToken(options)); + +export const getBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getBarQueryKey(options), + meta: { + id: 'getBar', + method: 'get', + path: '/bar' + } + }); +}; diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/preact-query/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/preact-query/@tanstack/preact-query.gen.ts index b0865adccf..c5abb28688 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/preact-query/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/preact-query/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { getBar, getFoo, type Options } from '../sdk.gen'; @@ -39,42 +39,50 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options), - meta: { - id: 'getFoo', - method: 'get', - path: '/foo' - } -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); -export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; -export const getBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getBarQueryKey(options), - meta: { - id: 'getBar', - method: 'get', - path: '/bar' - } -}); +export const getBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getBar', unwrapSkipToken(options)); + +export const getBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getBarQueryKey(options), + meta: { + id: 'getBar', + method: 'get', + path: '/bar' + } + }); +}; diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/react-query/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/react-query/@tanstack/react-query.gen.ts index 5a6a250348..2861728cb3 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/react-query/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/react-query/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken } from '@tanstack/react-query'; import { client } from '../client.gen'; import { getBar, getFoo, type Options } from '../sdk.gen'; @@ -39,42 +39,50 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options), - meta: { - id: 'getFoo', - method: 'get', - path: '/foo' - } -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); -export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; -export const getBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getBarQueryKey(options), - meta: { - id: 'getBar', - method: 'get', - path: '/bar' - } -}); +export const getBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getBar', unwrapSkipToken(options)); + +export const getBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getBarQueryKey(options), + meta: { + id: 'getBar', + method: 'get', + path: '/bar' + } + }); +}; diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/solid-query/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/solid-query/@tanstack/solid-query.gen.ts index 8b6d32356b..0334b4af87 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/solid-query/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/solid-query/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { getBar, getFoo, type Options } from '../sdk.gen'; @@ -39,42 +39,50 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options), - meta: { - id: 'getFoo', - method: 'get', - path: '/foo' - } -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); -export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; -export const getBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getBarQueryKey(options), - meta: { - id: 'getBar', - method: 'get', - path: '/bar' - } -}); +export const getBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getBar', unwrapSkipToken(options)); + +export const getBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getBarQueryKey(options), + meta: { + id: 'getBar', + method: 'get', + path: '/bar' + } + }); +}; diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/svelte-query/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/svelte-query/@tanstack/svelte-query.gen.ts index 4c50bd6203..b0ee2bb163 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/svelte-query/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/svelte-query/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { getBar, getFoo, type Options } from '../sdk.gen'; @@ -39,42 +39,50 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options), - meta: { - id: 'getFoo', - method: 'get', - path: '/foo' - } -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); -export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; -export const getBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getBarQueryKey(options), - meta: { - id: 'getBar', - method: 'get', - path: '/bar' - } -}); +export const getBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getBar', unwrapSkipToken(options)); + +export const getBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getBarQueryKey(options), + meta: { + id: 'getBar', + method: 'get', + path: '/bar' + } + }); +}; diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/vue-query/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/vue-query/@tanstack/vue-query.gen.ts index 4793f41da5..775c34d2ba 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/vue-query/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/meta-function/vue-query/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { getBar, getFoo, type Options } from '../sdk.gen'; @@ -39,42 +39,50 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options), - meta: { - id: 'getFoo', - method: 'get', - path: '/foo' - } -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); -export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; -export const getBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getBarQueryKey(options), - meta: { - id: 'getBar', - method: 'get', - path: '/bar' - } -}); +export const getBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getBar', unwrapSkipToken(options)); + +export const getBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getBarQueryKey(options), + meta: { + id: 'getBar', + method: 'get', + path: '/bar' + } + }); +}; diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/pagination-ref/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/pagination-ref/@tanstack/react-query.gen.ts index b9e75835bb..4e0e01cdd4 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/pagination-ref/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/pagination-ref/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { getFoo, type Options, postFoo } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -83,29 +88,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getFooInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getFoo', options, true); +export const getFooInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getFoo', unwrapSkipToken(options), true); -export const getFooInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | null | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - 'foo.page': pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getFoo({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooInfiniteQueryKey(options) -}); +export const getFooInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | null | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + 'foo.page': pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getFoo({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooInfiniteQueryKey(options) + }); +}; export const postFooMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts index ac5127274b..203c13874d 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/preact-query.gen.ts index 92fa2c6b00..76e29f4e7e 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/react-query.gen.ts index 486657ead7..2e5565acc9 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/solid-query.gen.ts index d5594064cc..3edd143e7e 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/svelte-query.gen.ts index 3e29275971..c3c06a6c5c 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/vue-query.gen.ts index 2e82ca3558..d2fa0aeb55 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/asClass/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { BarBazService, BarService, FooBazService, FooService, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await FooBazService.getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooQueryKey(options) -}); +export const getFooQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await FooBazService.getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooQueryKey(options) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await BarBazService.getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarQueryKey(options) -}); +export const getFooBarOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await BarBazService.getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarQueryKey(options) + }); +}; export const fooBarPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts index 5b07cde6a8..dc575124c8 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/preact-query.gen.ts index 586296750d..fb1227eda2 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/react-query.gen.ts index 38403265b8..020586b8d5 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/solid-query.gen.ts index 203534a865..0d612db4eb 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/svelte-query.gen.ts index 9e78e66d27..79fd100b08 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/vue-query.gen.ts index f839621a3d..afad09aa85 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/axios/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import type { AxiosError } from 'axios'; import { client } from '../client.gen'; @@ -40,20 +40,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -97,35 +102,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ApiVVersionODataControllerCountResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, GetApiVbyApiVersionSimpleOperationResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -141,20 +152,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -271,20 +285,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -315,29 +332,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -381,20 +401,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -438,20 +461,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -481,80 +507,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions, CallWithNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions, DummyAResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions, DummyBResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions, CallWithResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseAndNoContentResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyAResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, DummyBResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, CallWithResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -584,35 +625,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions, unknown, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions, TypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, unknown, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, TypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -628,50 +675,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions, FileResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions, ComplexTypesResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions, MultipartResponseResponse, ReturnType>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, FileResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, ComplexTypesResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions, MultipartResponseResponse, ReturnType>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts index 6cc80fb17d..fd4dec7406 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/preact-query.gen.ts index 33d1fb83e9..28a123fba8 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/react-query.gen.ts index 378082bd09..e5143dc615 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/solid-query.gen.ts index 358caac28f..a89249256b 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/svelte-query.gen.ts index 7e81c37313..982de4106b 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): Mutation return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/vue-query.gen.ts index bbcab4d5a3..d24b4c4270 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/fetch/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -96,35 +101,41 @@ export const fooWowMutation = (options?: Partial>): UseMutat return mutationOptions; }; -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); - -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); - -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; + +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); + +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -140,20 +151,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial return mutationOptions; }; -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -270,20 +284,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', options); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -314,29 +331,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -380,20 +400,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', options); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -437,20 +460,23 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', options); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -480,80 +506,95 @@ export const duplicateName4Mutation = (options?: Partial) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); - -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); - -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); - -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); - -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); - -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); - -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); - -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); - -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; + +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); + +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; + +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); + +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; + +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); + +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; + +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); + +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -583,35 +624,41 @@ export const callWithResponsesMutation = (options?: Partial) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); - -export const typesQueryKey = (options: Options) => createQueryKey('types', options); - -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; + +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); + +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -627,50 +674,59 @@ export const uploadFileMutation = (options?: Partial>): return mutationOptions; }; -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); - -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); - -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); - -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); - -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; + +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); + +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; + +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); + +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartRequestMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/full-config/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/full-config/@tanstack/react-query.gen.ts index 32a7c7cf24..b82e2bd8e1 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/full-config/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/full-config/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type InfiniteData, infiniteQueryOptions, type QueryClient, queryOptions, useMutation, type UseMutationOptions, useQuery, useQueryClient } from '@tanstack/react-query'; +import { type DefaultError, type InfiniteData, infiniteQueryOptions, type QueryClient, queryOptions, skipToken, useMutation, type UseMutationOptions, useQuery, useQueryClient } from '@tanstack/react-query'; import { client } from '../client.gen'; import { apiVVersionODataControllerCount, callToTestOrderOfParams, callWithDefaultOptionalParameters, callWithDefaultParameters, callWithDescriptions, callWithDuplicateResponses, callWithNoContentResponse, callWithParameters, callWithResponse, callWithResponseAndNoContentResponse, callWithResponses, callWithResultFromHeader, callWithWeirdParameterNames, collectionFormat, complexParams, complexTypes, deleteCallWithoutParametersAndResponse, deleteFoo, deprecatedCall, dummyA, dummyB, duplicateName, duplicateName2, duplicateName3, duplicateName4, export_, fileResponse, fooWow, getApiVbyApiVersionSimpleOperation, getCallWithOptionalParam, getCallWithoutParametersAndResponse, import_, multipartRequest, multipartResponse, nonAsciiæøåÆøÅöôêÊ字符串, type Options, patchApiVbyApiVersionNoTag, patchCallWithoutParametersAndResponse, postApiVbyApiVersionFormData, postApiVbyApiVersionRequestBody, postCallWithOptionalParam, postCallWithoutParametersAndResponse, putCallWithoutParametersAndResponse, putWithFormUrlEncoded, testErrorCode, types, uploadFile } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const exportQueryKey = (options?: Options) => createQueryKey('export', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const exportOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await export_({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: exportQueryKey(options) -}); +export const exportQueryKey = (options?: Options | typeof skipToken) => createQueryKey('export', unwrapSkipToken(options)); + +export const exportOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await export_({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: exportQueryKey(options) + }); +}; export const exportGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(exportOptions(options).queryKey); @@ -63,7 +68,7 @@ export const useExportGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(exportOptions(options).queryKey); }; -export const useExportQuery = (options?: Options) => useQuery(exportOptions(options)); +export const useExportQuery = (options?: Options | typeof skipToken) => useQuery(exportOptions(options)); export const useExportSetQueryData = () => { const queryClient = useQueryClient(); @@ -156,20 +161,23 @@ export const fooWowMutation = (options?: Partial>): UseMutat export const useFooWowMutation = (mutationOptions?: Partial>, 'mutationFn'>>) => useMutation({ ...fooWowMutation(), ...mutationOptions }); -export const apiVVersionODataControllerCountQueryKey = (options?: Options) => createQueryKey('apiVVersionODataControllerCount', options); - -export const apiVVersionODataControllerCountOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await apiVVersionODataControllerCount({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: apiVVersionODataControllerCountQueryKey(options) -}); +export const apiVVersionODataControllerCountQueryKey = (options?: Options | typeof skipToken) => createQueryKey('apiVVersionODataControllerCount', unwrapSkipToken(options)); + +export const apiVVersionODataControllerCountOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await apiVVersionODataControllerCount({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: apiVVersionODataControllerCountQueryKey(options) + }); +}; export const apiVVersionODataControllerCountGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(apiVVersionODataControllerCountOptions(options).queryKey); @@ -180,27 +188,30 @@ export const useApiVVersionODataControllerCountGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(apiVVersionODataControllerCountOptions(options).queryKey); }; -export const useApiVVersionODataControllerCountQuery = (options?: Options) => useQuery(apiVVersionODataControllerCountOptions(options)); +export const useApiVVersionODataControllerCountQuery = (options?: Options | typeof skipToken) => useQuery(apiVVersionODataControllerCountOptions(options)); export const useApiVVersionODataControllerCountSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: ApiVVersionODataControllerCountResponse | undefined | ((old: ApiVVersionODataControllerCountResponse | undefined) => ApiVVersionODataControllerCountResponse | undefined)) => queryClient.setQueryData(apiVVersionODataControllerCountOptions(options).queryKey, updater); }; -export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options) => createQueryKey('getApiVbyApiVersionSimpleOperation', options); +export const getApiVbyApiVersionSimpleOperationQueryKey = (options: Options | typeof skipToken) => createQueryKey('getApiVbyApiVersionSimpleOperation', unwrapSkipToken(options)); -export const getApiVbyApiVersionSimpleOperationOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getApiVbyApiVersionSimpleOperation({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) -}); +export const getApiVbyApiVersionSimpleOperationOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getApiVbyApiVersionSimpleOperation({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getApiVbyApiVersionSimpleOperationQueryKey(options) + }); +}; export const getApiVbyApiVersionSimpleOperationGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(getApiVbyApiVersionSimpleOperationOptions(options).queryKey); @@ -211,7 +222,7 @@ export const useGetApiVbyApiVersionSimpleOperationGetQueryData = () => { return (options: Options) => queryClient.getQueryData(getApiVbyApiVersionSimpleOperationOptions(options).queryKey); }; -export const useGetApiVbyApiVersionSimpleOperationQuery = (options: Options) => useQuery(getApiVbyApiVersionSimpleOperationOptions(options)); +export const useGetApiVbyApiVersionSimpleOperationQuery = (options: Options | typeof skipToken) => useQuery(getApiVbyApiVersionSimpleOperationOptions(options)); export const useGetApiVbyApiVersionSimpleOperationSetQueryData = () => { const queryClient = useQueryClient(); @@ -237,20 +248,23 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const useDeleteCallWithoutParametersAndResponseMutation = (mutationOptions?: Partial>, 'mutationFn'>>) => useMutation({ ...deleteCallWithoutParametersAndResponseMutation(), ...mutationOptions }); -export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', options); - -export const getCallWithoutParametersAndResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithoutParametersAndResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithoutParametersAndResponseQueryKey(options) -}); +export const getCallWithoutParametersAndResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getCallWithoutParametersAndResponse', unwrapSkipToken(options)); + +export const getCallWithoutParametersAndResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithoutParametersAndResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithoutParametersAndResponseQueryKey(options) + }); +}; export const getCallWithoutParametersAndResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(getCallWithoutParametersAndResponseOptions(options).queryKey); @@ -261,7 +275,7 @@ export const useGetCallWithoutParametersAndResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(getCallWithoutParametersAndResponseOptions(options).queryKey); }; -export const useGetCallWithoutParametersAndResponseQuery = (options?: Options) => useQuery(getCallWithoutParametersAndResponseOptions(options)); +export const useGetCallWithoutParametersAndResponseQuery = (options?: Options | typeof skipToken) => useQuery(getCallWithoutParametersAndResponseOptions(options)); export const useGetCallWithoutParametersAndResponseSetQueryData = () => { const queryClient = useQueryClient(); @@ -426,20 +440,23 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...callWithWeirdParameterNamesMutation(), ...mutationOptions }); -export const getCallWithOptionalParamQueryKey = (options: Options) => createQueryKey('getCallWithOptionalParam', options); - -export const getCallWithOptionalParamOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getCallWithOptionalParam({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamQueryKey(options) -}); +export const getCallWithOptionalParamQueryKey = (options: Options | typeof skipToken) => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options)); + +export const getCallWithOptionalParamOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamQueryKey(options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -470,29 +487,32 @@ const createInfiniteParams = [0], 'body' | 'hea return params as unknown as typeof page; }; -export const getCallWithOptionalParamInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getCallWithOptionalParam', options, true); - -export const getCallWithOptionalParamInfiniteOptions = (options: Options) => infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( -// @ts-ignore -{ - queryFn: async ({ pageParam, queryKey, signal }) => { - // @ts-ignore - const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { - query: { - page: pageParam - } - }; - const params = createInfiniteParams(queryKey, page); - const { data } = await getCallWithOptionalParam({ - ...options, - ...params, - signal, - throwOnError: true - }); - return data; - }, - queryKey: getCallWithOptionalParamInfiniteQueryKey(options) -}); +export const getCallWithOptionalParamInfiniteQueryKey = (options: Options | typeof skipToken): QueryKey> => createQueryKey('getCallWithOptionalParam', unwrapSkipToken(options), true); + +export const getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>( + // @ts-ignore + { + queryFn: options === skipToken ? skipToken : async ({ pageParam, queryKey, signal }) => { + // @ts-ignore + const page: Pick>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : { + query: { + page: pageParam + } + }; + const params = createInfiniteParams(queryKey, page); + const { data } = await getCallWithOptionalParam({ + ...unwrapped, + ...params, + signal, + throwOnError: true + }); + return data; + }, + queryKey: getCallWithOptionalParamInfiniteQueryKey(options) + }); +}; export const getCallWithOptionalParamGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(getCallWithOptionalParamOptions(options).queryKey); @@ -503,7 +523,7 @@ export const useGetCallWithOptionalParamGetQueryData = () => { return (options: Options) => queryClient.getQueryData(getCallWithOptionalParamOptions(options).queryKey); }; -export const useGetCallWithOptionalParamQuery = (options: Options) => useQuery(getCallWithOptionalParamOptions(options)); +export const useGetCallWithOptionalParamQuery = (options: Options | typeof skipToken) => useQuery(getCallWithOptionalParamOptions(options)); export const useGetCallWithOptionalParamSetQueryData = () => { const queryClient = useQueryClient(); @@ -567,20 +587,23 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...postApiVbyApiVersionFormDataMutation(), ...mutationOptions }); -export const callWithDefaultParametersQueryKey = (options?: Options) => createQueryKey('callWithDefaultParameters', options); - -export const callWithDefaultParametersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithDefaultParameters({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithDefaultParametersQueryKey(options) -}); +export const callWithDefaultParametersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithDefaultParameters', unwrapSkipToken(options)); + +export const callWithDefaultParametersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithDefaultParameters({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithDefaultParametersQueryKey(options) + }); +}; export const callWithDefaultParametersGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithDefaultParametersOptions(options).queryKey); @@ -591,7 +614,7 @@ export const useCallWithDefaultParametersGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithDefaultParametersOptions(options).queryKey); }; -export const useCallWithDefaultParametersQuery = (options?: Options) => useQuery(callWithDefaultParametersOptions(options)); +export const useCallWithDefaultParametersQuery = (options?: Options | typeof skipToken) => useQuery(callWithDefaultParametersOptions(options)); export const useCallWithDefaultParametersSetQueryData = () => { const queryClient = useQueryClient(); @@ -655,20 +678,23 @@ export const duplicateNameMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...duplicateNameMutation(), ...mutationOptions }); -export const duplicateName2QueryKey = (options?: Options) => createQueryKey('duplicateName2', options); - -export const duplicateName2Options = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await duplicateName2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: duplicateName2QueryKey(options) -}); +export const duplicateName2QueryKey = (options?: Options | typeof skipToken) => createQueryKey('duplicateName2', unwrapSkipToken(options)); + +export const duplicateName2Options = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await duplicateName2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: duplicateName2QueryKey(options) + }); +}; export const duplicateName2GetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(duplicateName2Options(options).queryKey); @@ -679,7 +705,7 @@ export const useDuplicateName2GetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(duplicateName2Options(options).queryKey); }; -export const useDuplicateName2Query = (options?: Options) => useQuery(duplicateName2Options(options)); +export const useDuplicateName2Query = (options?: Options | typeof skipToken) => useQuery(duplicateName2Options(options)); export const useDuplicateName2SetQueryData = () => { const queryClient = useQueryClient(); @@ -724,20 +750,23 @@ export const duplicateName4Mutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...duplicateName4Mutation(), ...mutationOptions }); -export const callWithNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithNoContentResponse', options); - -export const callWithNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithNoContentResponseQueryKey(options) -}); +export const callWithNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithNoContentResponse', unwrapSkipToken(options)); + +export const callWithNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithNoContentResponseQueryKey(options) + }); +}; export const callWithNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); @@ -748,27 +777,30 @@ export const useCallWithNoContentResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); }; -export const useCallWithNoContentResponseQuery = (options?: Options) => useQuery(callWithNoContentResponseOptions(options)); +export const useCallWithNoContentResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithNoContentResponseOptions(options)); export const useCallWithNoContentResponseSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: CallWithNoContentResponseResponse | undefined | ((old: CallWithNoContentResponseResponse | undefined) => CallWithNoContentResponseResponse | undefined)) => queryClient.setQueryData(callWithNoContentResponseOptions(options).queryKey, updater); }; -export const callWithResponseAndNoContentResponseQueryKey = (options?: Options) => createQueryKey('callWithResponseAndNoContentResponse', options); +export const callWithResponseAndNoContentResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponseAndNoContentResponse', unwrapSkipToken(options)); -export const callWithResponseAndNoContentResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponseAndNoContentResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseAndNoContentResponseQueryKey(options) -}); +export const callWithResponseAndNoContentResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponseAndNoContentResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseAndNoContentResponseQueryKey(options) + }); +}; export const callWithResponseAndNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); @@ -779,27 +811,30 @@ export const useCallWithResponseAndNoContentResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); }; -export const useCallWithResponseAndNoContentResponseQuery = (options?: Options) => useQuery(callWithResponseAndNoContentResponseOptions(options)); +export const useCallWithResponseAndNoContentResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithResponseAndNoContentResponseOptions(options)); export const useCallWithResponseAndNoContentResponseSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: CallWithResponseAndNoContentResponseResponse | undefined | ((old: CallWithResponseAndNoContentResponseResponse | undefined) => CallWithResponseAndNoContentResponseResponse | undefined)) => queryClient.setQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey, updater); }; -export const dummyAQueryKey = (options?: Options) => createQueryKey('dummyA', options); +export const dummyAQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyA', unwrapSkipToken(options)); -export const dummyAOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyA({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyAQueryKey(options) -}); +export const dummyAOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyA({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyAQueryKey(options) + }); +}; export const dummyAGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); @@ -810,27 +845,30 @@ export const useDummyAGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); }; -export const useDummyAQuery = (options?: Options) => useQuery(dummyAOptions(options)); +export const useDummyAQuery = (options?: Options | typeof skipToken) => useQuery(dummyAOptions(options)); export const useDummyASetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: DummyAResponse | undefined | ((old: DummyAResponse | undefined) => DummyAResponse | undefined)) => queryClient.setQueryData(dummyAOptions(options).queryKey, updater); }; -export const dummyBQueryKey = (options?: Options) => createQueryKey('dummyB', options); +export const dummyBQueryKey = (options?: Options | typeof skipToken) => createQueryKey('dummyB', unwrapSkipToken(options)); -export const dummyBOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await dummyB({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: dummyBQueryKey(options) -}); +export const dummyBOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await dummyB({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: dummyBQueryKey(options) + }); +}; export const dummyBGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); @@ -841,27 +879,30 @@ export const useDummyBGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); }; -export const useDummyBQuery = (options?: Options) => useQuery(dummyBOptions(options)); +export const useDummyBQuery = (options?: Options | typeof skipToken) => useQuery(dummyBOptions(options)); export const useDummyBSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options | undefined, updater: DummyBResponse | undefined | ((old: DummyBResponse | undefined) => DummyBResponse | undefined)) => queryClient.setQueryData(dummyBOptions(options).queryKey, updater); }; -export const callWithResponseQueryKey = (options?: Options) => createQueryKey('callWithResponse', options); +export const callWithResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('callWithResponse', unwrapSkipToken(options)); -export const callWithResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await callWithResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: callWithResponseQueryKey(options) -}); +export const callWithResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await callWithResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: callWithResponseQueryKey(options) + }); +}; export const callWithResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseOptions(options).queryKey); @@ -872,7 +913,7 @@ export const useCallWithResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(callWithResponseOptions(options).queryKey); }; -export const useCallWithResponseQuery = (options?: Options) => useQuery(callWithResponseOptions(options)); +export const useCallWithResponseQuery = (options?: Options | typeof skipToken) => useQuery(callWithResponseOptions(options)); export const useCallWithResponseSetQueryData = () => { const queryClient = useQueryClient(); @@ -917,20 +958,23 @@ export const callWithResponsesMutation = (options?: Partial>, 'mutationFn'>>) => useMutation({ ...callWithResponsesMutation(), ...mutationOptions }); -export const collectionFormatQueryKey = (options: Options) => createQueryKey('collectionFormat', options); - -export const collectionFormatOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await collectionFormat({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: collectionFormatQueryKey(options) -}); +export const collectionFormatQueryKey = (options: Options | typeof skipToken) => createQueryKey('collectionFormat', unwrapSkipToken(options)); + +export const collectionFormatOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await collectionFormat({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: collectionFormatQueryKey(options) + }); +}; export const collectionFormatGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); @@ -941,27 +985,30 @@ export const useCollectionFormatGetQueryData = () => { return (options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); }; -export const useCollectionFormatQuery = (options: Options) => useQuery(collectionFormatOptions(options)); +export const useCollectionFormatQuery = (options: Options | typeof skipToken) => useQuery(collectionFormatOptions(options)); export const useCollectionFormatSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options, updater: unknown | undefined | ((old: unknown | undefined) => unknown | undefined)) => queryClient.setQueryData(collectionFormatOptions(options).queryKey, updater); }; -export const typesQueryKey = (options: Options) => createQueryKey('types', options); +export const typesQueryKey = (options: Options | typeof skipToken) => createQueryKey('types', unwrapSkipToken(options)); -export const typesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await types({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: typesQueryKey(options) -}); +export const typesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await types({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: typesQueryKey(options) + }); +}; export const typesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(typesOptions(options).queryKey); @@ -972,7 +1019,7 @@ export const useTypesGetQueryData = () => { return (options: Options) => queryClient.getQueryData(typesOptions(options).queryKey); }; -export const useTypesQuery = (options: Options) => useQuery(typesOptions(options)); +export const useTypesQuery = (options: Options | typeof skipToken) => useQuery(typesOptions(options)); export const useTypesSetQueryData = () => { const queryClient = useQueryClient(); @@ -998,20 +1045,23 @@ export const uploadFileMutation = (options?: Partial>): export const useUploadFileMutation = (mutationOptions?: Partial>, 'mutationFn'>>) => useMutation({ ...uploadFileMutation(), ...mutationOptions }); -export const fileResponseQueryKey = (options: Options) => createQueryKey('fileResponse', options); - -export const fileResponseOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await fileResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: fileResponseQueryKey(options) -}); +export const fileResponseQueryKey = (options: Options | typeof skipToken) => createQueryKey('fileResponse', unwrapSkipToken(options)); + +export const fileResponseOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await fileResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: fileResponseQueryKey(options) + }); +}; export const fileResponseGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(fileResponseOptions(options).queryKey); @@ -1022,27 +1072,30 @@ export const useFileResponseGetQueryData = () => { return (options: Options) => queryClient.getQueryData(fileResponseOptions(options).queryKey); }; -export const useFileResponseQuery = (options: Options) => useQuery(fileResponseOptions(options)); +export const useFileResponseQuery = (options: Options | typeof skipToken) => useQuery(fileResponseOptions(options)); export const useFileResponseSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options, updater: FileResponseResponse | undefined | ((old: FileResponseResponse | undefined) => FileResponseResponse | undefined)) => queryClient.setQueryData(fileResponseOptions(options).queryKey, updater); }; -export const complexTypesQueryKey = (options: Options) => createQueryKey('complexTypes', options); +export const complexTypesQueryKey = (options: Options | typeof skipToken) => createQueryKey('complexTypes', unwrapSkipToken(options)); -export const complexTypesOptions = (options: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await complexTypes({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: complexTypesQueryKey(options) -}); +export const complexTypesOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await complexTypes({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: complexTypesQueryKey(options) + }); +}; export const complexTypesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(complexTypesOptions(options).queryKey); @@ -1053,27 +1106,30 @@ export const useComplexTypesGetQueryData = () => { return (options: Options) => queryClient.getQueryData(complexTypesOptions(options).queryKey); }; -export const useComplexTypesQuery = (options: Options) => useQuery(complexTypesOptions(options)); +export const useComplexTypesQuery = (options: Options | typeof skipToken) => useQuery(complexTypesOptions(options)); export const useComplexTypesSetQueryData = () => { const queryClient = useQueryClient(); return (options: Options, updater: ComplexTypesResponse | undefined | ((old: ComplexTypesResponse | undefined) => ComplexTypesResponse | undefined)) => queryClient.setQueryData(complexTypesOptions(options).queryKey, updater); }; -export const multipartResponseQueryKey = (options?: Options) => createQueryKey('multipartResponse', options); +export const multipartResponseQueryKey = (options?: Options | typeof skipToken) => createQueryKey('multipartResponse', unwrapSkipToken(options)); -export const multipartResponseOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await multipartResponse({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: multipartResponseQueryKey(options) -}); +export const multipartResponseOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await multipartResponse({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: multipartResponseQueryKey(options) + }); +}; export const multipartResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(multipartResponseOptions(options).queryKey); @@ -1084,7 +1140,7 @@ export const useMultipartResponseGetQueryData = () => { return (options: Options | undefined) => queryClient.getQueryData(multipartResponseOptions(options).queryKey); }; -export const useMultipartResponseQuery = (options?: Options) => useQuery(multipartResponseOptions(options)); +export const useMultipartResponseQuery = (options?: Options | typeof skipToken) => useQuery(multipartResponseOptions(options)); export const useMultipartResponseSetQueryData = () => { const queryClient = useQueryClient(); diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts index b144ed7a2c..846973c6ac 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/angular-query-experimental.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/angular-query-experimental'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/angular-query-experimental'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/preact-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/preact-query.gen.ts index 5552d69766..f29b518f13 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/preact-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/preact-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/preact-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/preact-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/react-query.gen.ts index 43c90277c2..3d227e2c1d 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/react-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/solid-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/solid-query.gen.ts index ba1febdda4..fa46410482 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/solid-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/solid-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/solid-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/solid-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/svelte-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/svelte-query.gen.ts index 6a831b5b3e..bfd4e0dcce 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/svelte-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/svelte-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, type MutationOptions, queryOptions } from '@tanstack/svelte-query'; +import { type DefaultError, type MutationOptions, queryOptions, skipToken } from '@tanstack/svelte-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): MutationOptions return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/vue-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/vue-query.gen.ts index bfd35f1d62..b1eefa4ee4 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/vue-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/plugins/name-builder/@tanstack/vue-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'; +import { type DefaultError, queryOptions, skipToken, type UseMutationOptions } from '@tanstack/vue-query'; import { client } from '../client.gen'; import { fooBarPost, fooBarPut, fooPost, fooPut, getFoo, getFooBar, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getFooD = (options?: Options) => createQueryKey('getFoo', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getFooE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFoo({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooD(options) -}); +export const getFooD = (options?: Options | typeof skipToken) => createQueryKey('getFoo', unwrapSkipToken(options)); + +export const getFooE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFoo({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooD(options) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -82,20 +87,23 @@ export const fooPutC = (options?: Partial>): UseMutationOpti return mutationOptions; }; -export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', options); +export const getFooBarD = (options?: Options | typeof skipToken) => createQueryKey('getFooBar', unwrapSkipToken(options)); -export const getFooBarE = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getFooBar({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getFooBarD(options) -}); +export const getFooBarE = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getFooBar({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getFooBarD(options) + }); +}; export const fooBarPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/query-options-name-conflict/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/query-options-name-conflict/@tanstack/react-query.gen.ts index 1971217de4..e6ac11a584 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/query-options-name-conflict/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/query-options-name-conflict/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken } from '@tanstack/react-query'; import { client } from '../client.gen'; import { getMembers, getMembersOptions as getMembersOptions2, type Options } from '../sdk.gen'; @@ -39,32 +39,40 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const getMembersQueryKey = (options?: Options) => createQueryKey('getMembers', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; -export const getMembersOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getMembers({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getMembersQueryKey(options) -}); +export const getMembersQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getMembers', unwrapSkipToken(options)); -export const getMembersOptionsQueryKey = (options?: Options) => createQueryKey('getMembersOptions', options); +export const getMembersOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getMembers({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getMembersQueryKey(options) + }); +}; + +export const getMembersOptionsQueryKey = (options?: Options | typeof skipToken) => createQueryKey('getMembersOptions', unwrapSkipToken(options)); -export const getMembersOptionsOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await getMembersOptions2({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: getMembersOptionsQueryKey(options) -}); +export const getMembersOptionsOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await getMembersOptions2({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: getMembersOptionsQueryKey(options) + }); +}; diff --git a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/sse-react-query/@tanstack/react-query.gen.ts b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/sse-react-query/@tanstack/react-query.gen.ts index 197e707f4c..af5e629fca 100644 --- a/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/sse-react-query/@tanstack/react-query.gen.ts +++ b/packages/openapi-ts-tests/tanstack-query/v5/__snapshots__/3.1.x/sse-react-query/@tanstack/react-query.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { type DefaultError, queryOptions } from '@tanstack/react-query'; +import { type DefaultError, queryOptions, skipToken } from '@tanstack/react-query'; import { client } from '../client.gen'; import { listEvents, type Options } from '../sdk.gen'; @@ -39,20 +39,25 @@ const createQueryKey = (id: string, options?: TOptions return [params]; }; -export const listEventsQueryKey = (options?: Options) => createQueryKey('listEvents', options); +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + +export const listEventsQueryKey = (options?: Options | typeof skipToken) => createQueryKey('listEvents', unwrapSkipToken(options)); /** * List events */ -export const listEventsOptions = (options?: Options) => queryOptions>({ - queryFn: async ({ queryKey, signal }) => { - const { data } = await listEvents({ - ...options, - ...queryKey[0], - signal, - throwOnError: true - }); - return data; - }, - queryKey: listEventsQueryKey(options) -}); +export const listEventsOptions = (options?: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return queryOptions>({ + queryFn: options === skipToken ? skipToken : async ({ queryKey, signal }) => { + const { data } = await listEvents({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true + }); + return data; + }, + queryKey: listEventsQueryKey(options) + }); +}; diff --git a/packages/openapi-ts/src/plugins/@tanstack/query-core/queryKey.ts b/packages/openapi-ts/src/plugins/@tanstack/query-core/queryKey.ts index 707ac3f942..aaf658f0ca 100644 --- a/packages/openapi-ts/src/plugins/@tanstack/query-core/queryKey.ts +++ b/packages/openapi-ts/src/plugins/@tanstack/query-core/queryKey.ts @@ -4,6 +4,7 @@ import { applyNaming, hasOperationDataRequired } from '@hey-api/shared'; import { getTypedConfig } from '../../../config/utils'; import { getClientBaseUrlKey } from '../../../plugins/@hey-api/client-core/utils'; +import type { TsDsl } from '../../../ts-dsl'; import { $ } from '../../../ts-dsl'; import { useTypeData } from './shared/useType'; import type { PluginInstance } from './types'; @@ -98,11 +99,13 @@ function createQueryKeyLiteral({ id, isInfinite, operation, + optionsExpr, plugin, }: { id: string; isInfinite?: boolean; operation: IR.OperationObject; + optionsExpr: TsDsl; plugin: PluginInstance; }): ReturnType { const config = isInfinite ? plugin.config.infiniteQueryKeys : plugin.config.queryKeys; @@ -117,7 +120,7 @@ function createQueryKeyLiteral({ }); const createQueryKeyCallExpression = $(symbolCreateQueryKey).call( $.literal(id), - 'options', + optionsExpr, isInfinite || tagsArray ? $.literal(Boolean(isInfinite)) : undefined, tagsArray, ); @@ -172,17 +175,25 @@ export function queryKeyStatement({ typeQueryKey?: ReturnType; }): ReturnType { const typeData = useTypeData({ operation, plugin }); + const symbolSkipToken = $(plugin.symbols.skipToken); + const symbolUnwrapSkipToken = plugin.referenceSymbol({ + category: 'utility', + resource: 'unwrapSkipToken', + tool: plugin.name, + }); + const paramType = $.type.or(typeData, $.type.query(symbolSkipToken)); const statement = $.const(symbol) .export() .assign( $.func() - .param('options', (p) => p.required(hasOperationDataRequired(operation)).type(typeData)) + .param('options', (p) => p.required(hasOperationDataRequired(operation)).type(paramType)) .$if(isInfinite && typeQueryKey, (f, v) => f.returns(v)) .do( createQueryKeyLiteral({ id: operation.id, isInfinite, operation, + optionsExpr: $(symbolUnwrapSkipToken).call('options'), plugin, }).return(), ), diff --git a/packages/openapi-ts/src/plugins/@tanstack/query-core/shared/unwrapSkipToken.ts b/packages/openapi-ts/src/plugins/@tanstack/query-core/shared/unwrapSkipToken.ts new file mode 100644 index 0000000000..74cc39c3a3 --- /dev/null +++ b/packages/openapi-ts/src/plugins/@tanstack/query-core/shared/unwrapSkipToken.ts @@ -0,0 +1,35 @@ +import { applyNaming } from '@hey-api/shared'; + +import { $ } from '../../../../ts-dsl'; +import type { PluginInstance } from '../types'; + +export const createUnwrapSkipTokenFunction = ({ plugin }: { plugin: PluginInstance }) => { + const symbolSkipToken = $(plugin.symbols.skipToken); + const TGeneric = 'T'; + + const symbolUnwrapSkipToken = plugin.symbol( + applyNaming('unwrapSkipToken', { + case: plugin.config.case, + }), + { + meta: { + category: 'utility', + resource: 'unwrapSkipToken', + tool: plugin.name, + }, + }, + ); + + const fn = $.const(symbolUnwrapSkipToken).assign( + $.func() + .generic(TGeneric) + .param('options', (p) => p.type($.type.or(TGeneric, $.type.query(symbolSkipToken)))) + .returns($.type.or(TGeneric, $.type('undefined'))) + .do( + $.return( + $.ternary($('options').neq(symbolSkipToken)).do($('options')).otherwise($('undefined')), + ), + ), + ); + plugin.node(fn); +}; diff --git a/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/infiniteQueryOptions.ts b/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/infiniteQueryOptions.ts index c14a3e25aa..cdd2d9070d 100644 --- a/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/infiniteQueryOptions.ts +++ b/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/infiniteQueryOptions.ts @@ -9,6 +9,7 @@ import type { TsDsl } from '../../../../ts-dsl'; import { $ } from '../../../../ts-dsl'; import { createQueryKeyFunction, createQueryKeyType, queryKeyStatement } from '../queryKey'; import { handleMeta } from '../shared/meta'; +import { createUnwrapSkipTokenFunction } from '../shared/unwrapSkipToken'; import { useTypeData, useTypeError, useTypeResponse } from '../shared/useType'; import type { PluginInstance } from '../types'; @@ -133,12 +134,33 @@ export function createInfiniteQueryOptions({ createInfiniteParamsFunction({ plugin }); } + if ( + !plugin.querySymbol({ + category: 'utility', + resource: 'unwrapSkipToken', + tool: plugin.name, + }) + ) { + createUnwrapSkipTokenFunction({ plugin }); + } + const symbolInfiniteQueryOptions = plugin.symbols.infiniteQueryOptions; const symbolInfiniteDataType = plugin.symbols.InfiniteData; const typeData = useTypeData({ operation, plugin }); const typeResponse = useTypeResponse({ operation, plugin }); + const symbolSkipToken = $(plugin.symbols.skipToken); + + const symbolUnwrapSkipToken = plugin.referenceSymbol({ + category: 'utility', + resource: 'unwrapSkipToken', + tool: plugin.name, + }); + const unwrappedName = 'unwrapped'; + const unwrappedRef = $(unwrappedName); + const unwrappedCall = $(symbolUnwrapSkipToken).call('options'); + const symbolQueryKeyType = plugin.referenceSymbol({ category: 'type', resource: 'QueryKey', @@ -180,7 +202,7 @@ export function createInfiniteQueryOptions({ ) .call( $.object() - .spread('options') + .spread(unwrappedRef) .spread('params') .prop('signal', $('signal')) .prop('throwOnError', $.literal(true)), @@ -216,6 +238,13 @@ export function createInfiniteQueryOptions({ statements.push($.const().object('data').assign(awaitSdkFn), $.return('data')); } + const asyncQueryFn = $.func() + .async() + .param((p) => p.object('pageParam', 'queryKey', 'signal')) + .do(...statements); + + const paramType = $.type.or(typeData, $.type.query(symbolSkipToken)); + const symbolInfiniteQueryOptionsFn = plugin.symbol( applyNaming(operation.id, plugin.config.infiniteQueryOptions), ); @@ -224,34 +253,33 @@ export function createInfiniteQueryOptions({ .$if(plugin.config.comments && createOperationComment(operation), (c, v) => c.doc(v)) .assign( $.func() - .param('options', (p) => p.required(isRequiredOptions).type(typeData)) + .param('options', (p) => p.required(isRequiredOptions).type(paramType)) .do( - $.return( - $(symbolInfiniteQueryOptions) - .call( - $.object() - .pretty() - .hint('@ts-ignore') - .prop( - 'queryFn', - $.func() - .async() - .param((p) => p.object('pageParam', 'queryKey', 'signal')) - .do(...statements), - ) - .prop('queryKey', $(symbolInfiniteQueryKey).call('options')) - .$if(handleMeta(plugin, operation, 'infiniteQueryOptions'), (o, v) => - o.prop('meta', v), - ), - ) - .generics( - typeResponse, - useTypeError({ operation, plugin }), - $.type(symbolInfiniteDataType).generic(typeResponse), - typeQueryKey, - $.type.or(type, typePageObjectParam), - ), - ), + $.const(unwrappedName).assign(unwrappedCall), + $(symbolInfiniteQueryOptions) + .call( + $.object() + .pretty() + .hint('@ts-ignore') + .prop( + 'queryFn', + $.ternary($('options').eq(symbolSkipToken)) + .do(symbolSkipToken) + .otherwise(asyncQueryFn), + ) + .prop('queryKey', $(symbolInfiniteQueryKey).call('options')) + .$if(handleMeta(plugin, operation, 'infiniteQueryOptions'), (o, v) => + o.prop('meta', v), + ), + ) + .generics( + typeResponse, + useTypeError({ operation, plugin }), + $.type(symbolInfiniteDataType).generic(typeResponse), + typeQueryKey, + $.type.or(type, typePageObjectParam), + ) + .return(), ), ); plugin.node(statement); diff --git a/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/queryOptions.ts b/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/queryOptions.ts index 126f176d04..d66b5bb868 100644 --- a/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/queryOptions.ts +++ b/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/queryOptions.ts @@ -10,6 +10,7 @@ import type { TsDsl } from '../../../../ts-dsl'; import { $ } from '../../../../ts-dsl'; import { createQueryKeyFunction, createQueryKeyType, queryKeyStatement } from '../queryKey'; import { handleMeta } from '../shared/meta'; +import { createUnwrapSkipTokenFunction } from '../shared/unwrapSkipToken'; import { useTypeData, useTypeError, useTypeResponse } from '../shared/useType'; import type { PluginInstance } from '../types'; @@ -40,6 +41,16 @@ export function createQueryOptions({ createQueryKeyFunction({ plugin }); } + if ( + !plugin.querySymbol({ + category: 'utility', + resource: 'unwrapSkipToken', + tool: plugin.name, + }) + ) { + createUnwrapSkipTokenFunction({ plugin }); + } + const symbolQueryOptions = plugin.symbols.queryOptions; const symbolQueryKey = plugin.symbol(applyNaming(operation.id, plugin.config.queryKeys)); @@ -53,6 +64,17 @@ export function createQueryOptions({ const typeResponse = useTypeResponse({ operation, plugin }); + const symbolSkipToken = $(plugin.symbols.skipToken); + + const symbolUnwrapSkipToken = plugin.referenceSymbol({ + category: 'utility', + resource: 'unwrapSkipToken', + tool: plugin.name, + }); + const unwrappedName = 'unwrapped'; + const unwrappedRef = $(unwrappedName); + const unwrappedCall = $(symbolUnwrapSkipToken).call(optionsParamName); + const awaitSdkFn = $.lazy((ctx) => ctx .access( @@ -64,7 +86,7 @@ export function createQueryOptions({ ) .call( $.object() - .spread(optionsParamName) + .spread(unwrappedRef) .spread($('queryKey').attr(0)) .prop('signal', $('signal')) .prop('throwOnError', $.literal(true)), @@ -79,17 +101,24 @@ export function createQueryOptions({ statements.push($.const().object('data').assign(awaitSdkFn), $.return('data')); } + const asyncQueryFn = $.func() + .async() + .param((p) => p.object('queryKey', 'signal')) + .do(...statements); + + const typeData = useTypeData({ operation, plugin }); + const queryOptionsObj = $.object() .pretty() .prop( 'queryFn', - $.func() - .async() - .param((p) => p.object('queryKey', 'signal')) - .do(...statements), + $.ternary($(optionsParamName).eq(symbolSkipToken)) + .do(symbolSkipToken) + .otherwise(asyncQueryFn), ) .prop('queryKey', $(symbolQueryKey).call(optionsParamName)) .$if(handleMeta(plugin, operation, 'queryOptions'), (o, v) => o.prop('meta', v)); + const paramType = $.type.or(typeData, $.type.query(symbolSkipToken)); const symbolQueryOptionsFn = plugin.symbol( applyNaming(operation.id, plugin.config.queryOptions), @@ -110,10 +139,9 @@ export function createQueryOptions({ .$if(plugin.config.comments && createOperationComment(operation), (c, v) => c.doc(v)) .assign( $.func() - .param(optionsParamName, (p) => - p.required(isRequiredOptions).type(useTypeData({ operation, plugin })), - ) + .param(optionsParamName, (p) => p.required(isRequiredOptions).type(paramType)) .do( + $.const(unwrappedName).assign(unwrappedCall), $(symbolQueryOptions) .call(queryOptionsObj) .generics( diff --git a/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/useQuery.ts b/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/useQuery.ts index d98336fdf3..a92f5c4575 100644 --- a/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/useQuery.ts +++ b/packages/openapi-ts/src/plugins/@tanstack/query-core/v5/useQuery.ts @@ -26,12 +26,14 @@ export function createUseQuery({ const symbolUseQueryFn = plugin.symbol(applyNaming(operation.id, plugin.config.useQuery)); const symbolUseQuery = plugin.symbols.useQuery; + const symbolSkipToken = $(plugin.symbols.skipToken); const isRequiredOptions = isOperationOptionsRequired({ context: plugin.context, operation, }); const typeData = useTypeData({ operation, plugin }); + const sdkParamType = $.type.or(typeData, $.type.query(symbolSkipToken)); const symbolQueryOptionsFn = plugin.referenceSymbol({ category: 'hook', @@ -45,7 +47,7 @@ export function createUseQuery({ .$if(plugin.config.comments && createOperationComment(operation), (c, v) => c.doc(v)) .assign( $.func() - .param(optionsParamName, (p) => p.required(isRequiredOptions).type(typeData)) + .param(optionsParamName, (p) => p.required(isRequiredOptions).type(sdkParamType)) .do($(symbolUseQuery).call($(symbolQueryOptionsFn).call(optionsParamName)).return()), ); plugin.node(statement); diff --git a/packages/openapi-ts/src/symbols/tanstack-query.ts b/packages/openapi-ts/src/symbols/tanstack-query.ts index 9cff43cf2d..a0c1705736 100644 --- a/packages/openapi-ts/src/symbols/tanstack-query.ts +++ b/packages/openapi-ts/src/symbols/tanstack-query.ts @@ -33,6 +33,13 @@ export function TANSTACK_QUERY(plugin: PluginInstance) { queryOptions: plugin.symbol('queryOptions', { external: plugin.name, }), + skipToken: plugin.symbol('skipToken', { + external: plugin.name, + meta: { + category: 'external', + resource: `${plugin.name}.skipToken`, + }, + }), useMutation: plugin.symbol('useMutation', { external: plugin.name, }), diff --git a/packages/openapi-ts/src/ts-dsl/expr/__tests__/call.test.ts b/packages/openapi-ts/src/ts-dsl/expr/__tests__/call.test.ts new file mode 100644 index 0000000000..1810964501 --- /dev/null +++ b/packages/openapi-ts/src/ts-dsl/expr/__tests__/call.test.ts @@ -0,0 +1,42 @@ +import { $ } from '../../index'; +import { astToString } from '../../utils/render-utils'; + +describe('CallTsDsl', () => { + it('renders a basic call expression', () => { + const node = $.call('fn', $.literal('hello')); + const result = astToString(node.toAst()); + expect(result).toBe("fn('hello')"); + }); + + it('renders a call with no arguments', () => { + const node = $.call('fn'); + const result = astToString(node.toAst()); + expect(result).toBe('fn()'); + }); + + it('renders a call with multiple arguments', () => { + const node = $.call('fn', $.literal(1), $.literal(2)); + const result = astToString(node.toAst()); + expect(result).toBe('fn(1, 2)'); + }); + + it('attaches a leading comment via hint()', () => { + const node = $.call('fn', $.literal('x')).hint('@ts-ignore'); + const result = astToString(node.toAst()); + expect(result).toContain('// @ts-ignore'); + expect(result).toContain("fn('x')"); + }); + + it('renders without comment when hint() is not called', () => { + const node = $.call('fn'); + const result = astToString(node.toAst()); + expect(result).not.toContain('//'); + }); + + it('preserves hint when chained with generics', () => { + const node = $.call('fn', $.literal(1)).hint('@ts-ignore').generics($.type('T')); + const result = astToString(node.toAst()); + expect(result).toContain('// @ts-ignore'); + expect(result).toContain('fn(1)'); + }); +}); diff --git a/packages/openapi-ts/src/ts-dsl/expr/__tests__/ternary.test.ts b/packages/openapi-ts/src/ts-dsl/expr/__tests__/ternary.test.ts new file mode 100644 index 0000000000..a5f8cc821e --- /dev/null +++ b/packages/openapi-ts/src/ts-dsl/expr/__tests__/ternary.test.ts @@ -0,0 +1,28 @@ +import { $ } from '../../index'; +import { astToString } from '../../utils/render-utils'; + +describe('TernaryTsDsl', () => { + it('renders a basic ternary expression', () => { + const node = $.ternary($('a').eq($('b'))) + .do($.literal(1)) + .otherwise($.literal(2)); + const result = astToString(node.toAst()); + expect(result).toBe('a === b ? 1 : 2'); + }); + + it('renders a ternary with inequality', () => { + const node = $.ternary($('options').neq($('skipToken'))) + .do($('options')) + .otherwise($('undefined')); + const result = astToString(node.toAst()); + expect(result).toBe('options !== skipToken ? options : undefined'); + }); + + it('renders a ternary with as-cast in the truthy branch', () => { + const node = $.ternary($('options').neq($('skipToken'))) + .do($('options').as('T')) + .otherwise($('undefined')); + const result = astToString(node.toAst()); + expect(result).toBe('options !== skipToken ? options as T : undefined'); + }); +}); diff --git a/packages/openapi-ts/src/ts-dsl/expr/call.ts b/packages/openapi-ts/src/ts-dsl/expr/call.ts index c1001024e9..9bf2f02ae1 100644 --- a/packages/openapi-ts/src/ts-dsl/expr/call.ts +++ b/packages/openapi-ts/src/ts-dsl/expr/call.ts @@ -7,6 +7,7 @@ import { TsDsl } from '../base'; import { ArgsMixin } from '../mixins/args'; import { AsMixin } from '../mixins/as'; import { ExprMixin } from '../mixins/expr'; +import { HintMixin } from '../mixins/hint'; import { SpreadMixin } from '../mixins/spread'; import { TypeArgsMixin } from '../mixins/type-args'; import { f } from '../utils/factories'; @@ -15,7 +16,9 @@ export type CallArgs = ReadonlyArray; export type CallCallee = NodeName | MaybeTsDsl; export type CallCtor = (callee: CallCallee, ...args: CallArgs) => CallTsDsl; -const Mixed = ArgsMixin(AsMixin(ExprMixin(SpreadMixin(TypeArgsMixin(TsDsl))))); +const Mixed = ArgsMixin( + AsMixin(ExprMixin(HintMixin(SpreadMixin(TypeArgsMixin(TsDsl))))), +); export class CallTsDsl extends Mixed { readonly '~dsl' = 'CallTsDsl'; @@ -34,11 +37,12 @@ export class CallTsDsl extends Mixed { } override toAst() { - return ts.factory.createCallExpression( + const node = ts.factory.createCallExpression( this.$node(this._callee), this.$generics(), this.$args(), ); + return this.$hint(node); } }