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.

43 lines (39 loc) 2.27 kB
'use strict'; var composeInfiniteQueryKey = require('./composeInfiniteQueryKey.cjs'); var composeQueryKey = require('./composeQueryKey.cjs'); var prepareRequestFnParameters = require('./prepareRequestFnParameters.cjs'); var requestFnResponseRejecter = require('./requestFnResponseRejecter.cjs'); var requestFnResponseResolver = require('./requestFnResponseResolver.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 }) { const { parameters, body } = prepareRequestFnParameters.prepareRequestFnParameters(queryParams, pageParam, infinite); return requestFn(schema, { parameters: parameters, baseUrl, body, 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