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.

1 lines 3.24 kB
{"version":3,"file":"prepareRequestFnParameters.cjs","sources":["../../../src/lib/prepareRequestFnParameters.ts"],"sourcesContent":["import { shelfMerge } from './shelfMerge.js';\n\n/**\n * Prepares parameters and body for requestFn calls, handling infinite query logic\n * @param queryParams - The query parameters that may contain body\n * @param pageParam - The page parameter for infinite queries\n * @param infinite - Whether this is for an infinite query\n * @returns Object with prepared parameters and body\n */\nexport function prepareRequestFnParameters<TQueryParams>(\n queryParams: TQueryParams,\n pageParam: unknown,\n infinite: boolean\n): {\n parameters: TQueryParams extends { body: any }\n ? Omit<TQueryParams, 'body'>\n : TQueryParams;\n body: BodyInit | undefined;\n} {\n const { body, ...parameters } = queryParams as {\n body?: BodyInit;\n } & TQueryParams;\n\n if (!infinite) {\n return {\n parameters: parameters as never,\n body: body as never,\n };\n }\n\n // Handle infinite query parameters\n const processedParameters = shelfMerge(\n 2,\n parameters,\n omitBodyFromPageParam(pageParam)\n ) as never;\n\n const processedBody = mergeBodyWithPageParam(body, pageParam) as never;\n\n return {\n parameters: processedParameters,\n body: processedBody,\n };\n}\n\n/**\n * Remove body from pageParam if it exists\n */\nfunction omitBodyFromPageParam(pageParam: unknown) {\n if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {\n const { body: _body, ...pageParameters } = pageParam;\n return pageParameters;\n }\n\n return pageParam;\n}\n\n/**\n * Merge body with pageParam.body if pageParam contains body\n */\nfunction mergeBodyWithPageParam(\n body: BodyInit | undefined,\n pageParam: unknown\n): BodyInit | undefined {\n if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {\n return shelfMerge(1, body, pageParam.body) as BodyInit;\n }\n\n return body;\n}\n"],"names":["prepareRequestFnParameters","queryParams","pageParam","infinite","body","parameters","processedParameters","shelfMerge","omitBodyFromPageParam","processedBody","mergeBodyWithPageParam","_body","pageParameters"],"mappings":";;;;AAEA;;;;;;AAMC,IACM,SAASA,0BAAAA,CACdC,WAAyB,EACzBC,SAAkB,EAClBC,QAAiB,EAAA;AAOjB,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAY,GAAGJ,WAAAA,CAAAA;AAIhC,IAAA,IAAI,CAACE,QAAU,EAAA;QACb,OAAO;YACLE,UAAYA,EAAAA,UAAAA;YACZD,IAAMA,EAAAA,IAAAA;AACR,SAAA,CAAA;AACF,KAAA;;AAGA,IAAA,MAAME,mBAAsBC,GAAAA,qBAAAA,CAC1B,CACAF,EAAAA,UAAAA,EACAG,qBAAsBN,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA;IAGxB,MAAMO,aAAAA,GAAgBC,uBAAuBN,IAAMF,EAAAA,SAAAA,CAAAA,CAAAA;IAEnD,OAAO;QACLG,UAAYC,EAAAA,mBAAAA;QACZF,IAAMK,EAAAA,aAAAA;AACR,KAAA,CAAA;AACF,CAAA;AAEA;;IAGA,SAASD,sBAAsBN,SAAkB,EAAA;AAC/C,IAAA,IAAIA,SAAa,IAAA,OAAOA,SAAc,KAAA,QAAA,IAAY,UAAUA,SAAW,EAAA;AACrE,QAAA,MAAM,EAAEE,IAAMO,EAAAA,KAAK,EAAE,GAAGC,gBAAgB,GAAGV,SAAAA,CAAAA;QAC3C,OAAOU,cAAAA,CAAAA;AACT,KAAA;IAEA,OAAOV,SAAAA,CAAAA;AACT,CAAA;AAEA;;AAEC,IACD,SAASQ,sBAAAA,CACPN,IAA0B,EAC1BF,SAAkB,EAAA;AAElB,IAAA,IAAIA,SAAa,IAAA,OAAOA,SAAc,KAAA,QAAA,IAAY,UAAUA,SAAW,EAAA;AACrE,QAAA,OAAOK,qBAAW,CAAA,CAAA,EAAGH,IAAMF,EAAAA,SAAAA,CAAUE,IAAI,CAAA,CAAA;AAC3C,KAAA;IAEA,OAAOA,IAAAA,CAAAA;AACT;;;;"}