@openapi-qraft/react
Version:
OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.
36 lines (33 loc) • 1.46 kB
JavaScript
'use client';
import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
import { composeQueryKey } from './composeQueryKey.js';
import { prepareRequestFnParameters } from './prepareRequestFnParameters.js';
import { requestFnResponseRejecter } from './requestFnResponseRejecter.js';
import { requestFnResponseResolver } from './requestFnResponseResolver.js';
/**
* Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
* @internal
*/ function useComposeUseQueryOptions(qraftOptions, schema, args, infinite) {
const [parameters, options] = args;
const queryFn = options?.queryFn ?? function({ queryKey: [, queryParams], signal, meta, pageParam }) {
const { parameters, body } = prepareRequestFnParameters(queryParams, pageParam, infinite);
return qraftOptions.requestFn(schema, {
parameters: parameters,
baseUrl: qraftOptions.baseUrl,
body,
signal,
meta
}).then(requestFnResponseResolver, requestFnResponseRejecter);
};
const queryKey = Array.isArray(parameters) ? parameters : infinite ? composeInfiniteQueryKey(schema, parameters) : composeQueryKey(schema, parameters);
return [
{
...options,
queryFn,
queryKey
},
qraftOptions.queryClient
];
}
export { useComposeUseQueryOptions };
//# sourceMappingURL=useComposeUseQueryOptions.js.map