diff --git a/.changeset/tanstack-skiptoken-support.md b/.changeset/tanstack-skiptoken-support.md new file mode 100644 index 0000000000..34c3a5836b --- /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` and `infiniteQueryOptions` + +Generated `*Options` factories 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..c1b12fc4f4 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,6 +151,9 @@ const createQueryKey = ( return [params]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => + options !== skipToken ? options : undefined; + export const findPetsByStatusQueryKey = (options: Options) => createQueryKey('findPetsByStatus', options); @@ -158,24 +162,31 @@ export const findPetsByStatusQueryKey = (options: Options) * * 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; - }, - queryKey: findPetsByStatusQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByStatus({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: findPetsByStatusQueryKey(unwrapped as Options), }); +}; export const findPetsByTagsQueryKey = (options: Options) => createQueryKey('findPetsByTags', options); @@ -185,24 +196,29 @@ export const findPetsByTagsQueryKey = (options: Options) => * * 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; - }, - queryKey: findPetsByTagsQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByTags({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: findPetsByTagsQueryKey(unwrapped as Options), }); +}; /** * Deletes a pet. @@ -233,24 +249,29 @@ export const getPetByIdQueryKey = (options: Options) => * * 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; - }, - queryKey: getPetByIdQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getPetById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getPetByIdQueryKey(unwrapped as Options), }); +}; /** * Updates a pet in the store with form data. @@ -310,24 +331,29 @@ export const getInventoryQueryKey = (options?: Options) => * * 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; - }, - queryKey: getInventoryQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getInventory({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getInventoryQueryKey(unwrapped), }); +}; /** * Place an order for a pet. @@ -383,24 +409,29 @@ export const getOrderByIdQueryKey = (options: Options) => * * 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; - }, - queryKey: getOrderByIdQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getOrderById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getOrderByIdQueryKey(unwrapped as Options), }); +}; /** * Create user. @@ -464,24 +495,29 @@ export const loginUserQueryKey = (options?: Options) => * * 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; - }, - queryKey: loginUserQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await loginUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: loginUserQueryKey(unwrapped), }); +}; export const logoutUserQueryKey = (options?: Options) => createQueryKey('logoutUser', options); @@ -491,19 +527,24 @@ export const logoutUserQueryKey = (options?: Options) => * * 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; - }, - queryKey: logoutUserQueryKey(options), +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(unwrapped), }); +}; /** * Delete user resource. @@ -534,24 +575,29 @@ export const getUserByNameQueryKey = (options: Options) => * * 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; - }, - queryKey: getUserByNameQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getUserByName({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getUserByNameQueryKey(unwrapped as 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..a10761f7c8 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,6 +130,9 @@ const createQueryKey = ( return [params]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => + options !== skipToken ? options : undefined; + export const findPetsByStatusQueryKey = (options: Options) => createQueryKey('findPetsByStatus', options); @@ -133,24 +141,31 @@ export const findPetsByStatusQueryKey = (options: Options) * * 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; - }, - queryKey: findPetsByStatusQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().findPetsByStatus({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: findPetsByStatusQueryKey(unwrapped as Options), }); +}; export const findPetsByTagsQueryKey = (options: Options) => createQueryKey('findPetsByTags', options); @@ -160,24 +175,29 @@ export const findPetsByTagsQueryKey = (options: Options) => * * 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; - }, - queryKey: findPetsByTagsQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().findPetsByTags({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: findPetsByTagsQueryKey(unwrapped as Options), }); +}; /** * Deletes a pet. @@ -208,24 +228,29 @@ export const getPetByIdQueryKey = (options: Options) => * * 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; - }, - queryKey: getPetByIdQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().getPetById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getPetByIdQueryKey(unwrapped as Options), }); +}; /** * Updates a pet in the store with form data. @@ -285,24 +310,29 @@ export const getInventoryQueryKey = (options?: Options) => * * 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; - }, - queryKey: getInventoryQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().getInventory({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getInventoryQueryKey(unwrapped), }); +}; /** * Place an order for a pet. @@ -358,24 +388,29 @@ export const getOrderByIdQueryKey = (options: Options) => * * 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; - }, - queryKey: getOrderByIdQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().getOrderById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getOrderByIdQueryKey(unwrapped as Options), }); +}; /** * Create user. @@ -439,24 +474,29 @@ export const loginUserQueryKey = (options?: Options) => * * 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; - }, - queryKey: loginUserQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().loginUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: loginUserQueryKey(unwrapped), }); +}; export const logoutUserQueryKey = (options?: Options) => createQueryKey('logoutUser', options); @@ -466,19 +506,24 @@ export const logoutUserQueryKey = (options?: Options) => * * 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; - }, - queryKey: logoutUserQueryKey(options), +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(unwrapped), }); +}; /** * Delete user resource. @@ -509,24 +554,29 @@ export const getUserByNameQueryKey = (options: Options) => * * 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; - }, - queryKey: getUserByNameQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await Sdk.__registry.get().getUserByName({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getUserByNameQueryKey(unwrapped as 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..dcfc0897cd 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,6 +151,9 @@ const createQueryKey = ( return [params]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => + options !== skipToken ? options : undefined; + export const findPetsByStatusQueryKey = (options: Options) => createQueryKey('findPetsByStatus', options); @@ -154,24 +162,31 @@ export const findPetsByStatusQueryKey = (options: Options) * * 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; - }, - queryKey: findPetsByStatusQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByStatus({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: findPetsByStatusQueryKey(unwrapped as Options), }); +}; export const findPetsByTagsQueryKey = (options: Options) => createQueryKey('findPetsByTags', options); @@ -181,24 +196,29 @@ export const findPetsByTagsQueryKey = (options: Options) => * * 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; - }, - queryKey: findPetsByTagsQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByTags({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: findPetsByTagsQueryKey(unwrapped as Options), }); +}; /** * Deletes a pet. @@ -229,24 +249,29 @@ export const getPetByIdQueryKey = (options: Options) => * * 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; - }, - queryKey: getPetByIdQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getPetById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getPetByIdQueryKey(unwrapped as Options), }); +}; /** * Updates a pet in the store with form data. @@ -306,24 +331,29 @@ export const getInventoryQueryKey = (options?: Options) => * * 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; - }, - queryKey: getInventoryQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getInventory({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getInventoryQueryKey(unwrapped), }); +}; /** * Place an order for a pet. @@ -379,24 +409,29 @@ export const getOrderByIdQueryKey = (options: Options) => * * 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; - }, - queryKey: getOrderByIdQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getOrderById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getOrderByIdQueryKey(unwrapped as Options), }); +}; /** * Create user. @@ -460,24 +495,29 @@ export const loginUserQueryKey = (options?: Options) => * * 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; - }, - queryKey: loginUserQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await loginUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: loginUserQueryKey(unwrapped), }); +}; export const logoutUserQueryKey = (options?: Options) => createQueryKey('logoutUser', options); @@ -487,19 +527,24 @@ export const logoutUserQueryKey = (options?: Options) => * * 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; - }, - queryKey: logoutUserQueryKey(options), +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(unwrapped), }); +}; /** * Delete user resource. @@ -530,24 +575,29 @@ export const getUserByNameQueryKey = (options: Options) => * * 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; - }, - queryKey: getUserByNameQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getUserByName({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getUserByNameQueryKey(unwrapped as 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..e8fa75f1f7 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,6 +151,9 @@ const createQueryKey = ( return [params]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => + options !== skipToken ? options : undefined; + export const findPetsByStatusQueryKey = (options: Options) => createQueryKey('findPetsByStatus', options); @@ -154,24 +162,31 @@ export const findPetsByStatusQueryKey = (options: Options) * * 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; - }, - queryKey: findPetsByStatusQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByStatus({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: findPetsByStatusQueryKey(unwrapped as Options), }); +}; export const findPetsByTagsQueryKey = (options: Options) => createQueryKey('findPetsByTags', options); @@ -181,24 +196,29 @@ export const findPetsByTagsQueryKey = (options: Options) => * * 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; - }, - queryKey: findPetsByTagsQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await findPetsByTags({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: findPetsByTagsQueryKey(unwrapped as Options), }); +}; /** * Deletes a pet. @@ -229,24 +249,29 @@ export const getPetByIdQueryKey = (options: Options) => * * 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; - }, - queryKey: getPetByIdQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getPetById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getPetByIdQueryKey(unwrapped as Options), }); +}; /** * Updates a pet in the store with form data. @@ -306,24 +331,29 @@ export const getInventoryQueryKey = (options?: Options) => * * 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; - }, - queryKey: getInventoryQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getInventory({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getInventoryQueryKey(unwrapped), }); +}; /** * Place an order for a pet. @@ -379,24 +409,29 @@ export const getOrderByIdQueryKey = (options: Options) => * * 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; - }, - queryKey: getOrderByIdQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getOrderById({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getOrderByIdQueryKey(unwrapped as Options), }); +}; /** * Create user. @@ -460,24 +495,29 @@ export const loginUserQueryKey = (options?: Options) => * * 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; - }, - queryKey: loginUserQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await loginUser({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: loginUserQueryKey(unwrapped), }); +}; export const logoutUserQueryKey = (options?: Options) => createQueryKey('logoutUser', options); @@ -487,19 +527,24 @@ export const logoutUserQueryKey = (options?: Options) => * * 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; - }, - queryKey: logoutUserQueryKey(options), +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(unwrapped), }); +}; /** * Delete user resource. @@ -530,24 +575,29 @@ export const getUserByNameQueryKey = (options: Options) => * * 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; - }, - queryKey: getUserByNameQueryKey(options), + queryFn: + options === skipToken + ? skipToken + : async ({ queryKey, signal }) => { + const { data } = await getUserByName({ + ...unwrapped, + ...queryKey[0], + signal, + throwOnError: true, + }); + return data; + }, + queryKey: getUserByNameQueryKey(unwrapped as 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..6c673e22cf 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..a9ef28575f 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..d878bbd5fd 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..00c555a589 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..63f9622612 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..8e65456a56 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..c0cfb23253 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,18 +104,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -198,18 +206,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -255,18 +266,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -298,78 +312,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -401,48 +430,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..a0c60f74d1 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,18 +104,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -198,18 +206,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -255,18 +266,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -298,78 +312,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -401,48 +430,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..42e057ebbb 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,18 +104,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -198,18 +206,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -255,18 +266,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -298,78 +312,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -401,48 +430,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..10f68b208b 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,18 +104,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -198,18 +206,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -255,18 +266,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -298,78 +312,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -401,48 +430,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..6a8c6ac20c 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,18 +104,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -198,18 +206,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -255,18 +266,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -298,78 +312,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -401,48 +430,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..f9ee8c4c8b 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,18 +104,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -198,18 +206,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -255,18 +266,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -298,78 +312,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -401,48 +430,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..ddcc6870fc 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,18 +103,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -197,18 +205,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -254,18 +265,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -297,78 +311,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -400,48 +429,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..c56c636604 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,18 +103,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -197,18 +205,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -254,18 +265,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -297,78 +311,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -400,48 +429,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..382d6bed2a 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,18 +103,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -197,18 +205,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -254,18 +265,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -297,78 +311,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -400,48 +429,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..298ef949cd 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,18 +103,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -197,18 +205,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -254,18 +265,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -297,78 +311,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -400,48 +429,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..d6bf27c584 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,18 +103,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -197,18 +205,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -254,18 +265,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -297,78 +311,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -400,48 +429,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..d0aa8d9f78 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,18 +103,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -197,18 +205,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -254,18 +265,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -297,78 +311,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -400,48 +429,57 @@ 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped as 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..d826909404 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const serviceWithEmptyTagQueryKey = (options?: Options) => createQueryKey('serviceWithEmptyTag', options); -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 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(unwrapped) + }); +}; 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(); @@ -158,18 +163,21 @@ export const useDeleteCallWithoutParametersAndResponseMutation = (mutationOption 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 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(unwrapped) + }); +}; 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(); @@ -303,18 +311,21 @@ export const useCallWithWeirdParameterNamesMutation = (mutationOptions?: Partial 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 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(unwrapped as 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(); @@ -391,18 +402,21 @@ export const useDuplicateNameMutation = (mutationOptions?: Partial) => 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 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(unwrapped) + }); +}; 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(); @@ -460,18 +474,21 @@ export const useDuplicateName4Mutation = (mutationOptions?: 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 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(unwrapped) + }); +}; export const callWithNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); @@ -482,7 +499,7 @@ 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(); @@ -491,18 +508,21 @@ export const useCallWithNoContentResponseSetQueryData = () => { 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 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(unwrapped) + }); +}; export const callWithResponseAndNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); @@ -513,7 +533,7 @@ 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(); @@ -522,18 +542,21 @@ export const useCallWithResponseAndNoContentResponseSetQueryData = () => { 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 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(unwrapped) + }); +}; export const dummyAGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); @@ -544,7 +567,7 @@ 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(); @@ -553,18 +576,21 @@ export const useDummyASetQueryData = () => { 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 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(unwrapped) + }); +}; export const dummyBGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); @@ -575,7 +601,7 @@ 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(); @@ -584,18 +610,21 @@ export const useDummyBSetQueryData = () => { 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 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(unwrapped) + }); +}; 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(); @@ -653,18 +682,21 @@ export const useCallWithResponsesMutation = (mutationOptions?: 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 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(unwrapped as Options) + }); +}; export const collectionFormatGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); @@ -675,7 +707,7 @@ 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(); @@ -684,18 +716,21 @@ export const useCollectionFormatSetQueryData = () => { 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 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(unwrapped as Options) + }); +}; export const typesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(typesOptions(options).queryKey); @@ -706,7 +741,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(); @@ -715,18 +750,21 @@ export const useTypesSetQueryData = () => { 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 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(unwrapped as 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..7817a132e6 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..66c89c810e 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..d49ec192bf 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..b1501ae53f 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..f3e590a1c2 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..e636c4b439 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..f7ef9c6131 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const createQueryKey2 = (options?: Options) => createQueryKey('create', options); -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 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(unwrapped) + }); +}; 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..6c673e22cf 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..a9ef28575f 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..d878bbd5fd 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..00c555a589 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..63f9622612 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..8e65456a56 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..5b5f147da4 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..b4da2a7f2e 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..9284e93efe 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..ebf6118fd4 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..a0e900893c 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..6734d4f2f0 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..877abc09ac 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..e4697f27cd 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..e4f97ef8ed 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..5be2e36fc1 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..f464178573 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..ed0f3a8398 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..93a82b5d10 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; 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(); @@ -158,18 +163,21 @@ export const useFooWowMutation = (mutationOptions?: Partial) => 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 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(unwrapped) + }); +}; export const apiVVersionODataControllerCountGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(apiVVersionODataControllerCountOptions(options).queryKey); @@ -180,7 +188,7 @@ 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(); @@ -189,18 +197,21 @@ export const useApiVVersionODataControllerCountSetQueryData = () => { 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 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(unwrapped as 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(); @@ -239,18 +250,21 @@ export const useDeleteCallWithoutParametersAndResponseMutation = (mutationOption 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 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(unwrapped) + }); +}; 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(); @@ -428,18 +442,21 @@ export const useCallWithWeirdParameterNamesMutation = (mutationOptions?: Partial 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -472,27 +489,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as 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(); @@ -569,18 +589,21 @@ export const usePostApiVbyApiVersionFormDataMutation = (mutationOptions?: Partia 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 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(unwrapped) + }); +}; 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(); @@ -657,18 +680,21 @@ export const useDuplicateNameMutation = (mutationOptions?: Partial) => 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 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(unwrapped) + }); +}; 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(); @@ -726,18 +752,21 @@ export const useDuplicateName4Mutation = (mutationOptions?: 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 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(unwrapped) + }); +}; export const callWithNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); @@ -748,7 +777,7 @@ 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(); @@ -757,18 +786,21 @@ export const useCallWithNoContentResponseSetQueryData = () => { 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 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(unwrapped) + }); +}; export const callWithResponseAndNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); @@ -779,7 +811,7 @@ 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(); @@ -788,18 +820,21 @@ export const useCallWithResponseAndNoContentResponseSetQueryData = () => { 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 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(unwrapped) + }); +}; export const dummyAGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); @@ -810,7 +845,7 @@ 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(); @@ -819,18 +854,21 @@ export const useDummyASetQueryData = () => { 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 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(unwrapped) + }); +}; export const dummyBGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); @@ -841,7 +879,7 @@ 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(); @@ -850,18 +888,21 @@ export const useDummyBSetQueryData = () => { 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 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(unwrapped) + }); +}; 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(); @@ -919,18 +960,21 @@ export const useCallWithResponsesMutation = (mutationOptions?: 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 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(unwrapped as Options) + }); +}; export const collectionFormatGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); @@ -941,7 +985,7 @@ 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(); @@ -950,18 +994,21 @@ export const useCollectionFormatSetQueryData = () => { 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 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(unwrapped as 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(); @@ -1000,18 +1047,21 @@ export const useUploadFileMutation = (mutationOptions?: Partial) => 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 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(unwrapped as Options) + }); +}; export const fileResponseGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(fileResponseOptions(options).queryKey); @@ -1022,7 +1072,7 @@ 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(); @@ -1031,18 +1081,21 @@ export const useFileResponseSetQueryData = () => { 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 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(unwrapped as Options) + }); +}; export const complexTypesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(complexTypesOptions(options).queryKey); @@ -1053,7 +1106,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(); @@ -1062,18 +1115,21 @@ export const useComplexTypesSetQueryData = () => { 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 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(unwrapped) + }); +}; 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..7817a132e6 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..66c89c810e 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..d49ec192bf 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..b1501ae53f 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..f3e590a1c2 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..e636c4b439 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..f7ef9c6131 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const createQueryKey2 = (options?: Options) => createQueryKey('create', options); -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 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(unwrapped) + }); +}; 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..2f8baa30e9 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); -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 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(unwrapped), + 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..b1fa7c936a 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); -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 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(unwrapped), + 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..d5aceace97 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); -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 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(unwrapped), + 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..df973292b6 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); -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 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(unwrapped), + 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..93a113b7c9 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); -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 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(unwrapped), + 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..b23ca398e0 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped), + meta: { + id: 'getFoo', + method: 'get', + path: '/foo' + } + }); +}; export const getBarQueryKey = (options?: Options) => createQueryKey('getBar', options); -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 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(unwrapped), + 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..71c4848e7b 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options: Options) => createQueryKey('getFoo', options); -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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -85,27 +90,30 @@ const createInfiniteParams = [0], 'body' | 'hea export const getFooInfiniteQueryKey = (options: Options): QueryKey> => createQueryKey('getFoo', 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 + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | null | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as 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..6c673e22cf 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..a9ef28575f 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..d878bbd5fd 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..00c555a589 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..63f9622612 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): Mutation export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..8e65456a56 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooQueryKey = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutMutation = (options?: Partial>): UseMutat export const getFooBarQueryKey = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..5b5f147da4 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..b4da2a7f2e 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..9284e93efe 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..ebf6118fd4 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..a0e900893c 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions, Options> => { const mutationOptions: MutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..6734d4f2f0 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -99,33 +104,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -143,18 +154,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial export const getCallWithoutParametersAndResponseQueryKey = (options?: Options) => createQueryKey('getCallWithoutParametersAndResponse', 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -273,18 +287,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => createQueryKey('getCallWithOptionalParam', 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -317,27 +334,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, InfiniteData, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -383,18 +403,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => createQueryKey('callWithDefaultParameters', 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -440,18 +463,21 @@ export const duplicateNameMutation = (options?: Partial) => createQueryKey('duplicateName2', 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -483,78 +509,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -586,33 +627,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { @@ -630,48 +677,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..877abc09ac 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..e4697f27cd 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..e4f97ef8ed 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..5be2e36fc1 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..f464178573 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): Mutation 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..ed0f3a8398 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; export const patchApiVbyApiVersionNoTagMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -98,33 +103,39 @@ export const fooWowMutation = (options?: Partial>): UseMutat 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 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(unwrapped) + }); +}; 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 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(unwrapped as Options) + }); +}; export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -142,18 +153,21 @@ export const deleteCallWithoutParametersAndResponseMutation = (options?: Partial 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 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(unwrapped) + }); +}; export const patchCallWithoutParametersAndResponseMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -272,18 +286,21 @@ export const callWithWeirdParameterNamesMutation = (options?: Partial) => 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -316,27 +333,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as Options) + }); +}; export const postCallWithOptionalParamMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -382,18 +402,21 @@ export const postApiVbyApiVersionFormDataMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const callWithDefaultOptionalParametersMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -439,18 +462,21 @@ export const duplicateNameMutation = (options?: Partial) => 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 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(unwrapped) + }); +}; export const duplicateName3Mutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -482,78 +508,93 @@ 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; 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 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(unwrapped) + }); +}; export const callWithDuplicateResponsesMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -585,33 +626,39 @@ 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 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(unwrapped as 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 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(unwrapped as Options) + }); +}; export const uploadFileMutation = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -629,48 +676,57 @@ export const uploadFileMutation = (options?: Partial>): 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 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(unwrapped as 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 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(unwrapped as 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 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(unwrapped) + }); +}; 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..93a82b5d10 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const exportQueryKey = (options?: Options) => createQueryKey('export', options); -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 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(unwrapped) + }); +}; 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(); @@ -158,18 +163,21 @@ export const useFooWowMutation = (mutationOptions?: Partial) => 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 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(unwrapped) + }); +}; export const apiVVersionODataControllerCountGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(apiVVersionODataControllerCountOptions(options).queryKey); @@ -180,7 +188,7 @@ 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(); @@ -189,18 +197,21 @@ export const useApiVVersionODataControllerCountSetQueryData = () => { 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 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(unwrapped as 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(); @@ -239,18 +250,21 @@ export const useDeleteCallWithoutParametersAndResponseMutation = (mutationOption 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 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(unwrapped) + }); +}; 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(); @@ -428,18 +442,21 @@ export const useCallWithWeirdParameterNamesMutation = (mutationOptions?: Partial 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 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(unwrapped as Options) + }); +}; const createInfiniteParams = [0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey, page: K) => { const params = { ...queryKey[0] }; @@ -472,27 +489,30 @@ const createInfiniteParams = [0], 'body' | 'hea 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 getCallWithOptionalParamInfiniteOptions = (options: Options | typeof skipToken) => { + const unwrapped = unwrapSkipToken(options); + return + // @ts-ignore + infiniteQueryOptions, QueryKey>, number | Pick>[0], 'body' | 'headers' | 'path' | 'query'>>({ + 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(unwrapped as 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(); @@ -569,18 +589,21 @@ export const usePostApiVbyApiVersionFormDataMutation = (mutationOptions?: Partia 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 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(unwrapped) + }); +}; 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(); @@ -657,18 +680,21 @@ export const useDuplicateNameMutation = (mutationOptions?: Partial) => 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 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(unwrapped) + }); +}; 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(); @@ -726,18 +752,21 @@ export const useDuplicateName4Mutation = (mutationOptions?: 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 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(unwrapped) + }); +}; export const callWithNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithNoContentResponseOptions(options).queryKey); @@ -748,7 +777,7 @@ 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(); @@ -757,18 +786,21 @@ export const useCallWithNoContentResponseSetQueryData = () => { 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 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(unwrapped) + }); +}; export const callWithResponseAndNoContentResponseGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(callWithResponseAndNoContentResponseOptions(options).queryKey); @@ -779,7 +811,7 @@ 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(); @@ -788,18 +820,21 @@ export const useCallWithResponseAndNoContentResponseSetQueryData = () => { 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 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(unwrapped) + }); +}; export const dummyAGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyAOptions(options).queryKey); @@ -810,7 +845,7 @@ 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(); @@ -819,18 +854,21 @@ export const useDummyASetQueryData = () => { 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 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(unwrapped) + }); +}; export const dummyBGetQueryData = (queryClient: QueryClient, options: Options | undefined) => queryClient.getQueryData(dummyBOptions(options).queryKey); @@ -841,7 +879,7 @@ 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(); @@ -850,18 +888,21 @@ export const useDummyBSetQueryData = () => { 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 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(unwrapped) + }); +}; 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(); @@ -919,18 +960,21 @@ export const useCallWithResponsesMutation = (mutationOptions?: 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 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(unwrapped as Options) + }); +}; export const collectionFormatGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(collectionFormatOptions(options).queryKey); @@ -941,7 +985,7 @@ 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(); @@ -950,18 +994,21 @@ export const useCollectionFormatSetQueryData = () => { 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 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(unwrapped as 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(); @@ -1000,18 +1047,21 @@ export const useUploadFileMutation = (mutationOptions?: Partial) => 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 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(unwrapped as Options) + }); +}; export const fileResponseGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(fileResponseOptions(options).queryKey); @@ -1022,7 +1072,7 @@ 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(); @@ -1031,18 +1081,21 @@ export const useFileResponseSetQueryData = () => { 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 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(unwrapped as Options) + }); +}; export const complexTypesGetQueryData = (queryClient: QueryClient, options: Options) => queryClient.getQueryData(complexTypesOptions(options).queryKey); @@ -1053,7 +1106,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(); @@ -1062,18 +1115,21 @@ export const useComplexTypesSetQueryData = () => { 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 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(unwrapped) + }); +}; 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..7817a132e6 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..66c89c810e 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..d49ec192bf 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..b1501ae53f 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..f3e590a1c2 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): MutationOptions> => { const mutationOptions: MutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): MutationOptions export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..e636c4b439 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getFooD = (options?: Options) => createQueryKey('getFoo', options); -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 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(unwrapped) + }); +}; export const fooPostC = (options?: Partial>): UseMutationOptions> => { const mutationOptions: UseMutationOptions> = { @@ -84,18 +89,21 @@ export const fooPutC = (options?: Partial>): UseMutationOpti export const getFooBarD = (options?: Options) => createQueryKey('getFooBar', 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(unwrapped) + }); +}; 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..a98444a28c 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const getMembersQueryKey = (options?: Options) => createQueryKey('getMembers', options); -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 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(unwrapped) + }); +}; export const getMembersOptionsQueryKey = (options?: Options) => createQueryKey('getMembersOptions', 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(unwrapped) + }); +}; 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..64eef8ddaf 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]; }; +const unwrapSkipToken = (options: T | typeof skipToken): T | undefined => options !== skipToken ? options : undefined; + export const listEventsQueryKey = (options?: Options) => createQueryKey('listEvents', 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(unwrapped) + }); +}; 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..c73ac3249c 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,38 @@ 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), + $.const(unwrappedName).assign(unwrappedCall), + $(symbolInfiniteQueryOptions) + .call( + $.object() + .pretty() + .prop( + 'queryFn', + $.ternary($('options').eq(symbolSkipToken)) + .do(symbolSkipToken) + .otherwise(asyncQueryFn), + ) + .prop( + 'queryKey', + $(symbolInfiniteQueryKey).call( + isRequiredOptions ? unwrappedRef.as(typeData) : unwrappedRef, ), - ) - .generics( - typeResponse, - useTypeError({ operation, plugin }), - $.type(symbolInfiniteDataType).generic(typeResponse), - typeQueryKey, - $.type.or(type, typePageObjectParam), - ), - ), + ) + .$if(handleMeta(plugin, operation, 'infiniteQueryOptions'), (o, v) => + o.prop('meta', v), + ), + ) + .hint('@ts-ignore') + .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..777104e562 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,26 @@ 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 optsForQueryKey = isRequiredOptions ? unwrappedRef.as(typeData) : unwrappedRef; + 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)) + .prop('queryKey', $(symbolQueryKey).call(optsForQueryKey)) .$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 +141,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 a45cd00d6a..5ee7debdfd 100644 --- a/packages/openapi-ts/src/symbols/tanstack-query.ts +++ b/packages/openapi-ts/src/symbols/tanstack-query.ts @@ -36,6 +36,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); } }