@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.66 kB
JavaScript
'use client';
;
var reactQuery = require('@tanstack/react-query');
var composeQueryKey = require('../lib/composeQueryKey.cjs');
var requestFnResponseRejecter = require('../lib/requestFnResponseRejecter.cjs');
var requestFnResponseResolver = require('../lib/requestFnResponseResolver.cjs');
const useSuspenseQueries = (qraftOptions, schema, args)=>{
const [options] = args;
return reactQuery.useSuspenseQueries({
...options,
// @ts-expect-error - Too complex to type
queries: options.queries.map((queryOptions)=>{
const optionsWithQueryKey = 'parameters' in queryOptions ? (()=>{
const queryOptionsCopy = Object.assign({
queryKey: composeQueryKey.composeQueryKey(schema, queryOptions.parameters)
}, queryOptions);
delete queryOptionsCopy.parameters;
return queryOptionsCopy;
})() : queryOptions;
return {
...optionsWithQueryKey,
queryFn: optionsWithQueryKey.queryFn ?? function({ queryKey: [, queryParams], signal, meta }) {
return qraftOptions.requestFn(schema, {
parameters: queryParams,
baseUrl: qraftOptions.baseUrl,
signal,
meta
}).then(requestFnResponseResolver.requestFnResponseResolver, requestFnResponseRejecter.requestFnResponseRejecter);
}
};
})
}, qraftOptions.queryClient);
};
exports.useSuspenseQueries = useSuspenseQueries;
//# sourceMappingURL=useSuspenseQueries.cjs.map