@openapi-qraft/react
Version:
OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.
47 lines (43 loc) • 1.63 kB
JavaScript
;
var shelfMerge = require('./shelfMerge.cjs');
/**
* Prepares parameters and body for requestFn calls, handling infinite query logic
* @param queryParams - The query parameters that may contain body
* @param pageParam - The page parameter for infinite queries
* @param infinite - Whether this is for an infinite query
* @returns Object with prepared parameters and body
*/ function prepareRequestFnParameters(queryParams, pageParam, infinite) {
const { body, ...parameters } = queryParams;
if (!infinite) {
return {
parameters: parameters,
body: body
};
}
// Handle infinite query parameters
const processedParameters = shelfMerge.shelfMerge(2, parameters, omitBodyFromPageParam(pageParam));
const processedBody = mergeBodyWithPageParam(body, pageParam);
return {
parameters: processedParameters,
body: processedBody
};
}
/**
* Remove body from pageParam if it exists
*/ function omitBodyFromPageParam(pageParam) {
if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {
const { body: _body, ...pageParameters } = pageParam;
return pageParameters;
}
return pageParam;
}
/**
* Merge body with pageParam.body if pageParam contains body
*/ function mergeBodyWithPageParam(body, pageParam) {
if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {
return shelfMerge.shelfMerge(1, body, pageParam.body);
}
return body;
}
exports.prepareRequestFnParameters = prepareRequestFnParameters;
//# sourceMappingURL=prepareRequestFnParameters.cjs.map