Copy /**
* Generated by orval v7.8.0 🍺
* Do not edit manually.
* Famchest API
* Famchest API description
* OpenAPI spec version: 1.0
*/
import { useQuery } from "@tanstack/react-query";
import { fetcher } from ".././fetcher";
import type { ErrorType } from ".././fetcher";
import type {
DataTag,
DefinedInitialDataOptions,
DefinedUseQueryResult,
QueryClient,
QueryFunction,
QueryKey,
UndefinedInitialDataOptions,
UseQueryOptions,
UseQueryResult,
} from "@tanstack/react-query";
type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
// the fetching function
export const appControllerGetHello = (
options?: SecondParameter<typeof fetcher>,
signal?: AbortSignal,
) => {
return fetcher<string>({ url: `/`, method: "GET", signal }, options);
};
// query key, mainly using api path as key
export const getAppControllerGetHelloQueryKey = () => {
return [`/`] as const;
};
// declare query option and apply query function and query key
export const getAppControllerGetHelloQueryOptions = <
TData = Awaited<ReturnType<typeof appControllerGetHello>>,
TError = ErrorType<unknown>,
>(options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof appControllerGetHello>>,
TError,
TData
>
>;
request?: SecondParameter<typeof fetcher>;
}) => {
const { query: queryOptions, request: requestOptions } = options ?? {};
const queryKey = queryOptions?.queryKey ?? getAppControllerGetHelloQueryKey();
const queryFn: QueryFunction<
Awaited<ReturnType<typeof appControllerGetHello>>
> = ({ signal }) => appControllerGetHello(requestOptions, signal);
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof appControllerGetHello>>,
TError,
TData
> & { queryKey: DataTag<QueryKey, TData, TError> };
};
// result type
export type AppControllerGetHelloQueryResult = NonNullable<
Awaited<ReturnType<typeof appControllerGetHello>>
>;
// error type
export type AppControllerGetHelloQueryError = ErrorType<unknown>;
// react query hook type
export function useAppControllerGetHello<
TData = Awaited<ReturnType<typeof appControllerGetHello>>,
TError = ErrorType<unknown>,
>(
options: {
query: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof appControllerGetHello>>,
TError,
TData
>
> &
Pick<
DefinedInitialDataOptions<
Awaited<ReturnType<typeof appControllerGetHello>>,
TError,
Awaited<ReturnType<typeof appControllerGetHello>>
>,
"initialData"
>;
request?: SecondParameter<typeof fetcher>;
},
queryClient?: QueryClient,
): DefinedUseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
export function useAppControllerGetHello<
TData = Awaited<ReturnType<typeof appControllerGetHello>>,
TError = ErrorType<unknown>,
>(
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof appControllerGetHello>>,
TError,
TData
>
> &
Pick<
UndefinedInitialDataOptions<
Awaited<ReturnType<typeof appControllerGetHello>>,
TError,
Awaited<ReturnType<typeof appControllerGetHello>>
>,
"initialData"
>;
request?: SecondParameter<typeof fetcher>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
export function useAppControllerGetHello<
TData = Awaited<ReturnType<typeof appControllerGetHello>>,
TError = ErrorType<unknown>,
>(
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof appControllerGetHello>>,
TError,
TData
>
>;
request?: SecondParameter<typeof fetcher>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
};
// react query hook implementation
export function useAppControllerGetHello<
TData = Awaited<ReturnType<typeof appControllerGetHello>>,
TError = ErrorType<unknown>,
>(
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof appControllerGetHello>>,
TError,
TData
>
>;
request?: SecondParameter<typeof fetcher>;
},
queryClient?: QueryClient,
): UseQueryResult<TData, TError> & {
queryKey: DataTag<QueryKey, TData, TError>;
} {
const queryOptions = getAppControllerGetHelloQueryOptions(options);
const query = useQuery(queryOptions, queryClient) as UseQueryResult<
TData,
TError
> & { queryKey: DataTag<QueryKey, TData, TError> };
query.queryKey = queryOptions.queryKey;
return query;
}