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.

41 lines (37 loc) 2.15 kB
'use strict'; 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'); /** * Calls a query client fetch method with parameters and options, * and automatically composes the `QueryKey` based on the schema and parameters. */ function callQueryClientMethodWithQueryKey(qraftOptions, queryFilterMethod, schema, infinite, args) { const { requestFn: requestFnOption, baseUrl: baseUrlOption, queryFn: queryFnOption, parameters, ...options } = args[0] ?? {}; const queryClient = qraftOptions.queryClient; const baseUrl = baseUrlOption ?? qraftOptions.baseUrl; if (queryFnOption && requestFnOption) { throw new Error('callQueryClientMethodWithQueryKey: options.queryFn and options.requestFn are mutually exclusive'); } const requestFn = requestFnOption ?? qraftOptions.requestFn; if (options.queryKey && parameters) { throw new Error('callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive'); } const queryFn = queryFnOption ?? (requestFn ? function({ queryKey: [, queryParams], signal, meta, pageParam }) { return requestFn(schema, { parameters: infinite ? shelfMerge.shelfMerge(2, queryParams, pageParam) : queryParams, baseUrl, signal, meta }).then(requestFnResponseResolver.requestFnResponseResolver, requestFnResponseRejecter.requestFnResponseRejecter); } : undefined); // @ts-expect-error - Too complex union to type return queryClient[queryFilterMethod]({ ...options, queryFn, queryKey: options.queryKey ?? (infinite ? composeInfiniteQueryKey.composeInfiniteQueryKey(schema, parameters) : composeQueryKey.composeQueryKey(schema, parameters)) }); } exports.callQueryClientMethodWithQueryKey = callQueryClientMethodWithQueryKey; //# sourceMappingURL=callQueryClientFetchMethod.cjs.map