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.

47 lines (43 loc) 1.63 kB
'use strict'; 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