UNPKG

@openapi-qraft/react

Version:

OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.

37 lines (34 loc) 1.49 kB
'use client'; import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js'; import { composeQueryKey } from './composeQueryKey.js'; import { requestFnResponseRejecter } from './requestFnResponseRejecter.js'; import { requestFnResponseResolver } from './requestFnResponseResolver.js'; import { shelfMerge } from './shelfMerge.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 { body, ...parameters } = queryParams; return qraftOptions.requestFn(schema, { // @ts-expect-error - Too complex to type parameters: infinite ? shelfMerge(2, parameters, pageParam) : 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