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 2.7 kB
{"version":3,"file":"composeQueryFilters.cjs","sources":["../../../src/lib/composeQueryFilters.ts"],"sourcesContent":["import type { OperationSchema } from './requestFn.js';\nimport { composeBaseQueryKey } from './composeBaseQueryKey.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\n\n/**\n * Replaces the `parameters` field in the filters with a `queryKey` field based on the schema.\n * If no filters are provided, a `queryKey` will be composed schema's base query key.\n * @param schema\n * @param filters\n */\nexport function composeQueryFilters<\n Filters extends {\n infinite: boolean;\n parameters?: object;\n } & Record<string, unknown>,\n>(schema: OperationSchema, filters: Filters | undefined) {\n if (!filters) {\n return {\n queryKey: composeBaseQueryKey(schema, undefined, undefined),\n };\n }\n\n if ('queryKey' in filters && 'parameters' in filters) {\n throw new Error(\n `'composeQueryFilters': 'queryKey' and 'parameters' cannot be used together`\n );\n }\n\n const { infinite, parameters, ...filtersRest } = filters;\n\n if ('queryKey' in filtersRest) {\n return filtersRest;\n }\n\n if (parameters) {\n Object.assign(filtersRest, {\n queryKey: infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters),\n });\n\n return filtersRest;\n }\n\n return {\n ...filtersRest,\n queryKey: infinite\n ? composeInfiniteQueryKey(schema, undefined)\n : composeQueryKey(schema, undefined),\n };\n}\n"],"names":["composeQueryFilters","schema","filters","queryKey","composeBaseQueryKey","undefined","Error","infinite","parameters","filtersRest","Object","assign","composeInfiniteQueryKey","composeQueryKey"],"mappings":";;;;;;AAKA;;;;;AAKC,IACM,SAASA,mBAKdC,CAAAA,MAAuB,EAAEC,OAA4B,EAAA;AACrD,IAAA,IAAI,CAACA,OAAS,EAAA;QACZ,OAAO;YACLC,QAAUC,EAAAA,uCAAAA,CAAoBH,QAAQI,SAAWA,EAAAA,SAAAA,CAAAA;AACnD,SAAA,CAAA;AACF,KAAA;IAEA,IAAI,UAAA,IAAcH,OAAW,IAAA,YAAA,IAAgBA,OAAS,EAAA;AACpD,QAAA,MAAM,IAAII,KAAAA,CACR,CAAC,0EAA0E,CAAC,CAAA,CAAA;AAEhF,KAAA;AAEA,IAAA,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGC,aAAa,GAAGP,OAAAA,CAAAA;AAEjD,IAAA,IAAI,cAAcO,WAAa,EAAA;QAC7B,OAAOA,WAAAA,CAAAA;AACT,KAAA;AAEA,IAAA,IAAID,UAAY,EAAA;QACdE,MAAOC,CAAAA,MAAM,CAACF,WAAa,EAAA;AACzBN,YAAAA,QAAAA,EAAUI,QACNK,GAAAA,+CAAAA,CAAwBX,MAAQO,EAAAA,UAAAA,CAAAA,GAChCK,gCAAgBZ,MAAQO,EAAAA,UAAAA,CAAAA;AAC9B,SAAA,CAAA,CAAA;QAEA,OAAOC,WAAAA,CAAAA;AACT,KAAA;IAEA,OAAO;AACL,QAAA,GAAGA,WAAW;AACdN,QAAAA,QAAAA,EAAUI,QACNK,GAAAA,+CAAAA,CAAwBX,MAAQI,EAAAA,SAAAA,CAAAA,GAChCQ,gCAAgBZ,MAAQI,EAAAA,SAAAA,CAAAA;AAC9B,KAAA,CAAA;AACF;;;;"}