@openapi-qraft/react
Version:
OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.
39 lines (35 loc) • 1.63 kB
JavaScript
'use client';
;
var composeInfiniteQueryKey = require('./composeInfiniteQueryKey.cjs');
var composeQueryKey = require('./composeQueryKey.cjs');
var requestFnResponseRejecter = require('./requestFnResponseRejecter.cjs');
var requestFnResponseResolver = require('./requestFnResponseResolver.cjs');
var shelfMerge = require('./shelfMerge.cjs');
/**
* 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 { body, ...parameters } = queryParams;
return qraftOptions.requestFn(schema, {
// @ts-expect-error - Too complex to type
parameters: infinite ? shelfMerge.shelfMerge(2, parameters, pageParam) : parameters,
baseUrl: qraftOptions.baseUrl,
body,
signal,
meta
}).then(requestFnResponseResolver.requestFnResponseResolver, requestFnResponseRejecter.requestFnResponseRejecter);
};
const queryKey = Array.isArray(parameters) ? parameters : infinite ? composeInfiniteQueryKey.composeInfiniteQueryKey(schema, parameters) : composeQueryKey.composeQueryKey(schema, parameters);
return [
{
...options,
queryFn,
queryKey
},
qraftOptions.queryClient
];
}
exports.useComposeUseQueryOptions = useComposeUseQueryOptions;
//# sourceMappingURL=useComposeUseQueryOptions.cjs.map