@openapi-qraft/react 2.10.1 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/cjs/callbacks/getMutationCache.cjs +26 -0
  3. package/dist/cjs/callbacks/getMutationCache.cjs.map +1 -0
  4. package/dist/cjs/callbacks/index.cjs +2 -0
  5. package/dist/cjs/callbacks/index.cjs.map +1 -1
  6. package/dist/cjs/lib/callQueryClientFetchMethod.cjs +4 -2
  7. package/dist/cjs/lib/callQueryClientFetchMethod.cjs.map +1 -1
  8. package/dist/cjs/lib/composeMutationFilters.cjs +4 -2
  9. package/dist/cjs/lib/composeMutationFilters.cjs.map +1 -1
  10. package/dist/cjs/lib/prepareRequestFnParameters.cjs +46 -0
  11. package/dist/cjs/lib/prepareRequestFnParameters.cjs.map +1 -0
  12. package/dist/cjs/lib/useComposeUseQueryOptions.cjs +3 -4
  13. package/dist/cjs/lib/useComposeUseQueryOptions.cjs.map +1 -1
  14. package/dist/esm/callbacks/getMutationCache.js +24 -0
  15. package/dist/esm/callbacks/getMutationCache.js.map +1 -0
  16. package/dist/esm/callbacks/index.js +1 -0
  17. package/dist/esm/callbacks/index.js.map +1 -1
  18. package/dist/esm/lib/callQueryClientFetchMethod.js +4 -2
  19. package/dist/esm/lib/callQueryClientFetchMethod.js.map +1 -1
  20. package/dist/esm/lib/composeMutationFilters.js +4 -2
  21. package/dist/esm/lib/composeMutationFilters.js.map +1 -1
  22. package/dist/esm/lib/prepareRequestFnParameters.js +44 -0
  23. package/dist/esm/lib/prepareRequestFnParameters.js.map +1 -0
  24. package/dist/esm/lib/useComposeUseQueryOptions.js +3 -4
  25. package/dist/esm/lib/useComposeUseQueryOptions.js.map +1 -1
  26. package/dist/types/callbacks/getMutationCache.d.ts +4 -0
  27. package/dist/types/callbacks/getMutationCache.d.ts.map +1 -0
  28. package/dist/types/callbacks/index.d.ts +1 -0
  29. package/dist/types/callbacks/index.d.ts.map +1 -1
  30. package/dist/types/lib/callQueryClientFetchMethod.d.ts.map +1 -1
  31. package/dist/types/lib/composeMutationFilters.d.ts +1 -0
  32. package/dist/types/lib/composeMutationFilters.d.ts.map +1 -1
  33. package/dist/types/lib/prepareRequestFnParameters.d.ts +14 -0
  34. package/dist/types/lib/prepareRequestFnParameters.d.ts.map +1 -0
  35. package/dist/types/lib/useComposeUseQueryOptions.d.ts.map +1 -1
  36. package/package.json +5 -5
  37. package/src/callbacks/getMutationCache.ts +31 -0
  38. package/src/callbacks/index.ts +1 -0
  39. package/src/lib/callQueryClientFetchMethod.ts +9 -4
  40. package/src/lib/composeMutationFilters.ts +3 -1
  41. package/src/lib/prepareRequestFnParameters.ts +70 -0
  42. package/src/lib/useComposeUseQueryOptions.ts +7 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @openapi-qraft/react
2
2
 
3
+ ## 2.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 56f4ae9: Added `getMutationCache()` method to query client operations.
8
+ - 7f63c73: getMutationCache() auto-sets `exact: false` for base filters
9
+
10
+ When calling `getMutationCache().find()` or `getMutationCache().findAll()` without providing `parameters` or
11
+ `mutationKey` filters, the `exact` option is now automatically set to `false`.
12
+
13
+ **Why this change?**
14
+
15
+ TanStack Query sets `exact: true` by default for mutation filters. Without this automatic override,
16
+ no mutations would match when using only predicate functions or no filters at all,
17
+ since the base mutation key wouldn't match exactly against specific mutation instances.
18
+
19
+ **Example:**
20
+
21
+ ```ts
22
+ // Returns all mutations for the endpoint due to auto-set exact: false
23
+ const mutations = qraft.entities.postEntitiesIdDocuments
24
+ .getMutationCache()
25
+ .findAll();
26
+ ```
27
+
28
+ This ensures that predicate-based filtering and endpoint-wide mutation searches work as expected.
29
+
30
+ ### Patch Changes
31
+
32
+ - Updated dependencies [56f4ae9]
33
+ - @openapi-qraft/tanstack-query-react-types@2.11.0
34
+
35
+ ## 2.10.2
36
+
37
+ ### Patch Changes
38
+
39
+ - 2a4db33: Refactored parameter preparation logic for queryable write operations to correctly handle body parameters in both regular and infinite queries. The update extracts shared logic into a reusable utility and ensures consistent parameter handling across all affected query methods.
40
+ - @openapi-qraft/tanstack-query-react-types@2.10.2
41
+
3
42
  ## 2.10.1
4
43
 
5
44
  ### Patch Changes
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var composeMutationFilters = require('../lib/composeMutationFilters.cjs');
4
+
5
+ function getMutationCache(qraftOptions, schema) {
6
+ const mutationCache = qraftOptions.queryClient.getMutationCache();
7
+ return wrapMutationCacheMethods(schema, mutationCache);
8
+ }
9
+ function wrapMutationCacheMethods(schema, original) {
10
+ return new Proxy(original, {
11
+ get (target, prop, receiver) {
12
+ if (prop === 'find' || prop === 'findAll') {
13
+ return function(...args) {
14
+ return Reflect.apply(target[prop], target, [
15
+ composeMutationFilters.composeMutationFilters(schema, args[0]),
16
+ ...args.slice(1, args.length)
17
+ ]);
18
+ };
19
+ }
20
+ return Reflect.get(target, prop, receiver);
21
+ }
22
+ });
23
+ }
24
+
25
+ exports.getMutationCache = getMutationCache;
26
+ //# sourceMappingURL=getMutationCache.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMutationCache.cjs","sources":["../../../src/callbacks/getMutationCache.ts"],"sourcesContent":["import type { OperationSchema } from '@openapi-qraft/tanstack-query-react-types';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport { composeMutationFilters } from '../lib/composeMutationFilters.js';\n\nexport function getMutationCache(\n qraftOptions: CreateAPIQueryClientOptions,\n schema: OperationSchema\n) {\n const mutationCache = qraftOptions.queryClient.getMutationCache();\n\n return wrapMutationCacheMethods(schema, mutationCache);\n}\n\nfunction wrapMutationCacheMethods<\n T extends Record<'find' | 'findAll', (...args: any[]) => any>,\n>(schema: OperationSchema, original: T): T {\n return new Proxy(original, {\n get(target, prop, receiver) {\n if (prop === 'find' || prop === 'findAll') {\n return function (...args: any[]) {\n return Reflect.apply(target[prop], target, [\n composeMutationFilters(schema, args[0] as never),\n ...args.slice(1, args.length),\n ]);\n };\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n"],"names":["getMutationCache","qraftOptions","schema","mutationCache","queryClient","wrapMutationCacheMethods","original","Proxy","get","target","prop","receiver","args","Reflect","apply","composeMutationFilters","slice","length"],"mappings":";;;;AAIO,SAASA,gBAAAA,CACdC,YAAyC,EACzCC,MAAuB,EAAA;AAEvB,IAAA,MAAMC,aAAgBF,GAAAA,YAAAA,CAAaG,WAAW,CAACJ,gBAAgB,EAAA,CAAA;AAE/D,IAAA,OAAOK,yBAAyBH,MAAQC,EAAAA,aAAAA,CAAAA,CAAAA;AAC1C,CAAA;AAEA,SAASE,wBAAAA,CAEPH,MAAuB,EAAEI,QAAW,EAAA;IACpC,OAAO,IAAIC,MAAMD,QAAU,EAAA;AACzBE,QAAAA,GAAAA,CAAAA,CAAIC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAA;YACxB,IAAID,IAAAA,KAAS,MAAUA,IAAAA,IAAAA,KAAS,SAAW,EAAA;gBACzC,OAAO,SAAU,GAAGE,IAAW,EAAA;AAC7B,oBAAA,OAAOC,QAAQC,KAAK,CAACL,MAAM,CAACC,IAAAA,CAAK,EAAED,MAAQ,EAAA;wBACzCM,6CAAuBb,CAAAA,MAAAA,EAAQU,IAAI,CAAC,CAAE,CAAA,CAAA;AACnCA,wBAAAA,GAAAA,IAAAA,CAAKI,KAAK,CAAC,CAAGJ,EAAAA,IAAAA,CAAKK,MAAM,CAAA;AAC7B,qBAAA,CAAA,CAAA;AACH,iBAAA,CAAA;AACF,aAAA;AAEA,YAAA,OAAOJ,OAAQL,CAAAA,GAAG,CAACC,MAAAA,EAAQC,IAAMC,EAAAA,QAAAA,CAAAA,CAAAA;AACnC,SAAA;AACF,KAAA,CAAA,CAAA;AACF;;;;"}
@@ -25,6 +25,7 @@ var removeQueries = require('./removeQueries.cjs');
25
25
  var refetchQueries = require('./refetchQueries.cjs');
26
26
  var isFetching = require('./isFetching.cjs');
27
27
  var isMutating = require('./isMutating.cjs');
28
+ var getMutationCache = require('./getMutationCache.cjs');
28
29
  var useIsFetching = require('./useIsFetching.cjs');
29
30
  var fetchQuery = require('./fetchQuery.cjs');
30
31
  var prefetchQuery = require('./prefetchQuery.cjs');
@@ -63,6 +64,7 @@ exports.removeQueries = removeQueries.removeQueries;
63
64
  exports.refetchQueries = refetchQueries.refetchQueries;
64
65
  exports.isFetching = isFetching.isFetching;
65
66
  exports.isMutating = isMutating.isMutating;
67
+ exports.getMutationCache = getMutationCache.getMutationCache;
66
68
  exports.useIsFetching = useIsFetching.useIsFetching;
67
69
  exports.fetchQuery = fetchQuery.fetchQuery;
68
70
  exports.prefetchQuery = prefetchQuery.prefetchQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  var composeInfiniteQueryKey = require('./composeInfiniteQueryKey.cjs');
4
4
  var composeQueryKey = require('./composeQueryKey.cjs');
5
+ var prepareRequestFnParameters = require('./prepareRequestFnParameters.cjs');
5
6
  var requestFnResponseRejecter = require('./requestFnResponseRejecter.cjs');
6
7
  var requestFnResponseResolver = require('./requestFnResponseResolver.cjs');
7
- var shelfMerge = require('./shelfMerge.cjs');
8
8
 
9
9
  /**
10
10
  * Calls a query client fetch method with parameters and options,
@@ -21,9 +21,11 @@ var shelfMerge = require('./shelfMerge.cjs');
21
21
  throw new Error('callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive');
22
22
  }
23
23
  const queryFn = queryFnOption ?? (requestFn ? function({ queryKey: [, queryParams], signal, meta, pageParam }) {
24
+ const { parameters, body } = prepareRequestFnParameters.prepareRequestFnParameters(queryParams, pageParam, infinite);
24
25
  return requestFn(schema, {
25
- parameters: infinite ? shelfMerge.shelfMerge(2, queryParams, pageParam) : queryParams,
26
+ parameters: parameters,
26
27
  baseUrl,
28
+ body,
27
29
  signal,
28
30
  meta
29
31
  }).then(requestFnResponseResolver.requestFnResponseResolver, requestFnResponseRejecter.requestFnResponseRejecter);
@@ -1 +1 @@
1
- {"version":3,"file":"callQueryClientFetchMethod.cjs","sources":["../../../src/lib/callQueryClientFetchMethod.ts"],"sourcesContent":["import type { QueryClient } from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema, RequestFn } from './requestFn.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\nimport { shelfMerge } from './shelfMerge.js';\n\n/**\n * Calls a query client fetch method with parameters and options,\n * and automatically composes the `QueryKey` based on the schema and parameters.\n */\nexport function callQueryClientMethodWithQueryKey<\n QFMethod extends QueryKeyMethods,\n>(\n qraftOptions: CreateAPIQueryClientOptions,\n queryFilterMethod: QFMethod,\n schema: OperationSchema,\n infinite: boolean,\n args: QueryClientMethodArgs<QFMethod>\n): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {\n const {\n requestFn: requestFnOption,\n baseUrl: baseUrlOption,\n queryFn: queryFnOption,\n parameters,\n ...options\n } = args[0] ?? {};\n\n const queryClient = qraftOptions.queryClient;\n const baseUrl = baseUrlOption ?? qraftOptions.baseUrl;\n\n if (queryFnOption && requestFnOption) {\n throw new Error(\n 'callQueryClientMethodWithQueryKey: options.queryFn and options.requestFn are mutually exclusive'\n );\n }\n\n const requestFn = requestFnOption ?? qraftOptions.requestFn;\n\n if (options.queryKey && parameters) {\n throw new Error(\n 'callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive'\n );\n }\n\n const queryFn =\n queryFnOption ??\n (requestFn\n ? // @ts-expect-error - Too complex union to type\n function ({ queryKey: [, queryParams], signal, meta, pageParam }) {\n return requestFn(schema, {\n parameters: infinite\n ? (shelfMerge(2, queryParams, pageParam) as never)\n : queryParams,\n baseUrl,\n signal,\n meta,\n }).then(requestFnResponseResolver, requestFnResponseRejecter);\n }\n : undefined);\n\n // @ts-expect-error - Too complex union to type\n return queryClient[queryFilterMethod]({\n ...options,\n queryFn,\n queryKey:\n options.queryKey ??\n (infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters)),\n });\n}\n\ntype QueryClientMethodArgs<QMethod extends keyof QueryClientPrototype> = [\n options: Parameters<QueryClientPrototype[QMethod]>[0] & {\n parameters?: unknown;\n baseUrl?: string;\n requestFn?: RequestFn<unknown, unknown>;\n },\n queryClient: QueryClient,\n];\n\ntype QueryKeyMethods =\n | QueryKeyMethod<'fetchQuery'>\n | QueryKeyMethod<'prefetchQuery'>\n | QueryKeyMethod<'ensureQueryData'>\n | QueryKeyMethod<'fetchInfiniteQuery'>\n | QueryKeyMethod<'prefetchInfiniteQuery'>\n | QueryKeyMethod<'ensureInfiniteQueryData'>;\n\ntype QueryClientPrototype = typeof QueryClient.prototype;\n\ntype QueryKeyMethod<QFMethod extends keyof typeof QueryClient.prototype> =\n QFMethod;\n"],"names":["callQueryClientMethodWithQueryKey","qraftOptions","queryFilterMethod","schema","infinite","args","requestFn","requestFnOption","baseUrl","baseUrlOption","queryFn","queryFnOption","parameters","options","queryClient","Error","queryKey","queryParams","signal","meta","pageParam","shelfMerge","then","requestFnResponseResolver","requestFnResponseRejecter","undefined","composeInfiniteQueryKey","composeQueryKey"],"mappings":";;;;;;;;AASA;;;IAIO,SAASA,iCAAAA,CAGdC,YAAyC,EACzCC,iBAA2B,EAC3BC,MAAuB,EACvBC,QAAiB,EACjBC,IAAqC,EAAA;AAErC,IAAA,MAAM,EACJC,SAAWC,EAAAA,eAAe,EAC1BC,OAASC,EAAAA,aAAa,EACtBC,OAASC,EAAAA,aAAa,EACtBC,UAAU,EACV,GAAGC,OACJ,EAAA,GAAGR,IAAI,CAAC,CAAA,CAAE,IAAI,EAAC,CAAA;IAEhB,MAAMS,WAAAA,GAAcb,aAAaa,WAAW,CAAA;IAC5C,MAAMN,OAAAA,GAAUC,aAAiBR,IAAAA,YAAAA,CAAaO,OAAO,CAAA;AAErD,IAAA,IAAIG,iBAAiBJ,eAAiB,EAAA;AACpC,QAAA,MAAM,IAAIQ,KACR,CAAA,iGAAA,CAAA,CAAA;AAEJ,KAAA;IAEA,MAAMT,SAAAA,GAAYC,eAAmBN,IAAAA,YAAAA,CAAaK,SAAS,CAAA;IAE3D,IAAIO,OAAAA,CAAQG,QAAQ,IAAIJ,UAAY,EAAA;AAClC,QAAA,MAAM,IAAIG,KACR,CAAA,mGAAA,CAAA,CAAA;AAEJ,KAAA;AAEA,IAAA,MAAML,OACJC,GAAAA,aAAAA,KACCL,SAAAA,GAEG,SAAU,EAAEU,QAAAA,EAAU,GAAGC,WAAAA,CAAY,EAAEC,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,EAAA;AAC9D,QAAA,OAAOd,UAAUH,MAAQ,EAAA;AACvBS,YAAAA,UAAAA,EAAYR,QACPiB,GAAAA,qBAAAA,CAAW,CAAGJ,EAAAA,WAAAA,EAAaG,SAC5BH,CAAAA,GAAAA,WAAAA;AACJT,YAAAA,OAAAA;AACAU,YAAAA,MAAAA;AACAC,YAAAA,IAAAA;SACCG,CAAAA,CAAAA,IAAI,CAACC,mDAA2BC,EAAAA,mDAAAA,CAAAA,CAAAA;AACrC,KAAA,GACAC,SAAQ,CAAA,CAAA;;IAGd,OAAOX,WAAW,CAACZ,iBAAAA,CAAkB,CAAC;AACpC,QAAA,GAAGW,OAAO;AACVH,QAAAA,OAAAA;QACAM,QACEH,EAAAA,OAAAA,CAAQG,QAAQ,KACfZ,QAAAA,GACGsB,gDAAwBvB,MAAQS,EAAAA,UAAAA,CAAAA,GAChCe,+BAAgBxB,CAAAA,MAAAA,EAAQS,UAAU,CAAA,CAAA;AAC1C,KAAA,CAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"callQueryClientFetchMethod.cjs","sources":["../../../src/lib/callQueryClientFetchMethod.ts"],"sourcesContent":["import type { QueryClient } from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema, RequestFn } from './requestFn.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { prepareRequestFnParameters } from './prepareRequestFnParameters.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\n\n/**\n * Calls a query client fetch method with parameters and options,\n * and automatically composes the `QueryKey` based on the schema and parameters.\n */\nexport function callQueryClientMethodWithQueryKey<\n QFMethod extends QueryKeyMethods,\n>(\n qraftOptions: CreateAPIQueryClientOptions,\n queryFilterMethod: QFMethod,\n schema: OperationSchema,\n infinite: boolean,\n args: QueryClientMethodArgs<QFMethod>\n): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {\n const {\n requestFn: requestFnOption,\n baseUrl: baseUrlOption,\n queryFn: queryFnOption,\n parameters,\n ...options\n } = args[0] ?? {};\n\n const queryClient = qraftOptions.queryClient;\n const baseUrl = baseUrlOption ?? qraftOptions.baseUrl;\n\n if (queryFnOption && requestFnOption) {\n throw new Error(\n 'callQueryClientMethodWithQueryKey: options.queryFn and options.requestFn are mutually exclusive'\n );\n }\n\n const requestFn = requestFnOption ?? qraftOptions.requestFn;\n\n if (options.queryKey && parameters) {\n throw new Error(\n 'callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive'\n );\n }\n\n const queryFn =\n queryFnOption ??\n (requestFn\n ? // @ts-expect-error - Too complex union to type\n function ({ queryKey: [, queryParams], signal, meta, pageParam }) {\n const { parameters, body } = prepareRequestFnParameters(\n queryParams,\n pageParam,\n infinite\n );\n\n return requestFn(schema, {\n parameters: parameters as never,\n baseUrl,\n body,\n signal,\n meta,\n }).then(requestFnResponseResolver, requestFnResponseRejecter);\n }\n : undefined);\n\n // @ts-expect-error - Too complex union to type\n return queryClient[queryFilterMethod]({\n ...options,\n queryFn,\n queryKey:\n options.queryKey ??\n (infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters)),\n });\n}\n\ntype QueryClientMethodArgs<QMethod extends keyof QueryClientPrototype> = [\n options: Parameters<QueryClientPrototype[QMethod]>[0] & {\n parameters?: unknown;\n baseUrl?: string;\n requestFn?: RequestFn<unknown, unknown>;\n },\n queryClient: QueryClient,\n];\n\ntype QueryKeyMethods =\n | QueryKeyMethod<'fetchQuery'>\n | QueryKeyMethod<'prefetchQuery'>\n | QueryKeyMethod<'ensureQueryData'>\n | QueryKeyMethod<'fetchInfiniteQuery'>\n | QueryKeyMethod<'prefetchInfiniteQuery'>\n | QueryKeyMethod<'ensureInfiniteQueryData'>;\n\ntype QueryClientPrototype = typeof QueryClient.prototype;\n\ntype QueryKeyMethod<QFMethod extends keyof typeof QueryClient.prototype> =\n QFMethod;\n"],"names":["callQueryClientMethodWithQueryKey","qraftOptions","queryFilterMethod","schema","infinite","args","requestFn","requestFnOption","baseUrl","baseUrlOption","queryFn","queryFnOption","parameters","options","queryClient","Error","queryKey","queryParams","signal","meta","pageParam","body","prepareRequestFnParameters","then","requestFnResponseResolver","requestFnResponseRejecter","undefined","composeInfiniteQueryKey","composeQueryKey"],"mappings":";;;;;;;;AASA;;;IAIO,SAASA,iCAAAA,CAGdC,YAAyC,EACzCC,iBAA2B,EAC3BC,MAAuB,EACvBC,QAAiB,EACjBC,IAAqC,EAAA;AAErC,IAAA,MAAM,EACJC,SAAWC,EAAAA,eAAe,EAC1BC,OAASC,EAAAA,aAAa,EACtBC,OAASC,EAAAA,aAAa,EACtBC,UAAU,EACV,GAAGC,OACJ,EAAA,GAAGR,IAAI,CAAC,CAAA,CAAE,IAAI,EAAC,CAAA;IAEhB,MAAMS,WAAAA,GAAcb,aAAaa,WAAW,CAAA;IAC5C,MAAMN,OAAAA,GAAUC,aAAiBR,IAAAA,YAAAA,CAAaO,OAAO,CAAA;AAErD,IAAA,IAAIG,iBAAiBJ,eAAiB,EAAA;AACpC,QAAA,MAAM,IAAIQ,KACR,CAAA,iGAAA,CAAA,CAAA;AAEJ,KAAA;IAEA,MAAMT,SAAAA,GAAYC,eAAmBN,IAAAA,YAAAA,CAAaK,SAAS,CAAA;IAE3D,IAAIO,OAAAA,CAAQG,QAAQ,IAAIJ,UAAY,EAAA;AAClC,QAAA,MAAM,IAAIG,KACR,CAAA,mGAAA,CAAA,CAAA;AAEJ,KAAA;AAEA,IAAA,MAAML,OACJC,GAAAA,aAAAA,KACCL,SAAAA,GAEG,SAAU,EAAEU,QAAAA,EAAU,GAAGC,WAAAA,CAAY,EAAEC,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,EAAA;QAC9D,MAAM,EAAER,UAAU,EAAES,IAAI,EAAE,GAAGC,qDAAAA,CAC3BL,aACAG,SACAhB,EAAAA,QAAAA,CAAAA,CAAAA;AAGF,QAAA,OAAOE,UAAUH,MAAQ,EAAA;YACvBS,UAAYA,EAAAA,UAAAA;AACZJ,YAAAA,OAAAA;AACAa,YAAAA,IAAAA;AACAH,YAAAA,MAAAA;AACAC,YAAAA,IAAAA;SACCI,CAAAA,CAAAA,IAAI,CAACC,mDAA2BC,EAAAA,mDAAAA,CAAAA,CAAAA;AACrC,KAAA,GACAC,SAAQ,CAAA,CAAA;;IAGd,OAAOZ,WAAW,CAACZ,iBAAAA,CAAkB,CAAC;AACpC,QAAA,GAAGW,OAAO;AACVH,QAAAA,OAAAA;QACAM,QACEH,EAAAA,OAAAA,CAAQG,QAAQ,KACfZ,QAAAA,GACGuB,gDAAwBxB,MAAQS,EAAAA,UAAAA,CAAAA,GAChCgB,+BAAgBzB,CAAAA,MAAAA,EAAQS,UAAU,CAAA,CAAA;AAC1C,KAAA,CAAA,CAAA;AACF;;;;"}
@@ -10,6 +10,7 @@ var composeMutationKey = require('./composeMutationKey.cjs');
10
10
  */ function composeMutationFilters(schema, filters) {
11
11
  if (!filters) {
12
12
  return {
13
+ exact: false,
13
14
  mutationKey: composeMutationKey.composeMutationKey(schema, undefined)
14
15
  };
15
16
  }
@@ -27,8 +28,9 @@ var composeMutationKey = require('./composeMutationKey.cjs');
27
28
  return filtersWithoutParameters;
28
29
  }
29
30
  return {
30
- ...filters,
31
- mutationKey: composeMutationKey.composeMutationKey(schema, undefined)
31
+ exact: false,
32
+ mutationKey: composeMutationKey.composeMutationKey(schema, undefined),
33
+ ...filters
32
34
  };
33
35
  }
34
36
 
@@ -1 +1 @@
1
- {"version":3,"file":"composeMutationFilters.cjs","sources":["../../../src/lib/composeMutationFilters.ts"],"sourcesContent":["import type { OperationSchema } from './requestFn.js';\nimport { composeMutationKey } from './composeMutationKey.js';\n\n/**\n * Replaces the `parameters` field in the filters with a `mutationKey` field based on the schema.\n * If no filters are provided, a `mutationKey` will be composed schema's base query key.\n * @param schema\n * @param filters\n */\nexport function composeMutationFilters<Filters extends object>(\n schema: OperationSchema,\n filters: Filters | undefined\n) {\n if (!filters) {\n return {\n mutationKey: composeMutationKey(schema, undefined),\n };\n }\n\n if (filters && 'mutationKey' in filters && 'parameters' in filters) {\n throw new Error(\n `'composeMutationFilters': 'mutationKey' and 'parameters' cannot be used together`\n );\n }\n\n if ('mutationKey' in filters) {\n return filters;\n }\n\n if ('parameters' in filters) {\n const { parameters, ...filtersWithoutParameters } = filters;\n\n Object.assign(filtersWithoutParameters, {\n mutationKey: composeMutationKey(schema, parameters),\n });\n\n return filtersWithoutParameters;\n }\n\n return {\n ...filters,\n mutationKey: composeMutationKey(schema, undefined),\n };\n}\n"],"names":["composeMutationFilters","schema","filters","mutationKey","composeMutationKey","undefined","Error","parameters","filtersWithoutParameters","Object","assign"],"mappings":";;;;AAGA;;;;;AAKC,IACM,SAASA,sBACdC,CAAAA,MAAuB,EACvBC,OAA4B,EAAA;AAE5B,IAAA,IAAI,CAACA,OAAS,EAAA;QACZ,OAAO;AACLC,YAAAA,WAAAA,EAAaC,sCAAmBH,MAAQI,EAAAA,SAAAA,CAAAA;AAC1C,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,IAAIH,OAAW,IAAA,aAAA,IAAiBA,OAAW,IAAA,YAAA,IAAgBA,OAAS,EAAA;AAClE,QAAA,MAAM,IAAII,KAAAA,CACR,CAAC,gFAAgF,CAAC,CAAA,CAAA;AAEtF,KAAA;AAEA,IAAA,IAAI,iBAAiBJ,OAAS,EAAA;QAC5B,OAAOA,OAAAA,CAAAA;AACT,KAAA;AAEA,IAAA,IAAI,gBAAgBA,OAAS,EAAA;AAC3B,QAAA,MAAM,EAAEK,UAAU,EAAE,GAAGC,0BAA0B,GAAGN,OAAAA,CAAAA;QAEpDO,MAAOC,CAAAA,MAAM,CAACF,wBAA0B,EAAA;AACtCL,YAAAA,WAAAA,EAAaC,sCAAmBH,MAAQM,EAAAA,UAAAA,CAAAA;AAC1C,SAAA,CAAA,CAAA;QAEA,OAAOC,wBAAAA,CAAAA;AACT,KAAA;IAEA,OAAO;AACL,QAAA,GAAGN,OAAO;AACVC,QAAAA,WAAAA,EAAaC,sCAAmBH,MAAQI,EAAAA,SAAAA,CAAAA;AAC1C,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"composeMutationFilters.cjs","sources":["../../../src/lib/composeMutationFilters.ts"],"sourcesContent":["import type { OperationSchema } from './requestFn.js';\nimport { composeMutationKey } from './composeMutationKey.js';\n\n/**\n * Replaces the `parameters` field in the filters with a `mutationKey` field based on the schema.\n * If no filters are provided, a `mutationKey` will be composed schema's base query key.\n * @param schema\n * @param filters\n */\nexport function composeMutationFilters<Filters extends object>(\n schema: OperationSchema,\n filters: Filters | undefined\n) {\n if (!filters) {\n return {\n exact: false,\n mutationKey: composeMutationKey(schema, undefined),\n };\n }\n\n if (filters && 'mutationKey' in filters && 'parameters' in filters) {\n throw new Error(\n `'composeMutationFilters': 'mutationKey' and 'parameters' cannot be used together`\n );\n }\n\n if ('mutationKey' in filters) {\n return filters;\n }\n\n if ('parameters' in filters) {\n const { parameters, ...filtersWithoutParameters } = filters;\n\n Object.assign(filtersWithoutParameters, {\n mutationKey: composeMutationKey(schema, parameters),\n });\n\n return filtersWithoutParameters;\n }\n\n return {\n exact: false,\n mutationKey: composeMutationKey(schema, undefined),\n ...filters,\n };\n}\n"],"names":["composeMutationFilters","schema","filters","exact","mutationKey","composeMutationKey","undefined","Error","parameters","filtersWithoutParameters","Object","assign"],"mappings":";;;;AAGA;;;;;AAKC,IACM,SAASA,sBACdC,CAAAA,MAAuB,EACvBC,OAA4B,EAAA;AAE5B,IAAA,IAAI,CAACA,OAAS,EAAA;QACZ,OAAO;YACLC,KAAO,EAAA,KAAA;AACPC,YAAAA,WAAAA,EAAaC,sCAAmBJ,MAAQK,EAAAA,SAAAA,CAAAA;AAC1C,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,IAAIJ,OAAW,IAAA,aAAA,IAAiBA,OAAW,IAAA,YAAA,IAAgBA,OAAS,EAAA;AAClE,QAAA,MAAM,IAAIK,KAAAA,CACR,CAAC,gFAAgF,CAAC,CAAA,CAAA;AAEtF,KAAA;AAEA,IAAA,IAAI,iBAAiBL,OAAS,EAAA;QAC5B,OAAOA,OAAAA,CAAAA;AACT,KAAA;AAEA,IAAA,IAAI,gBAAgBA,OAAS,EAAA;AAC3B,QAAA,MAAM,EAAEM,UAAU,EAAE,GAAGC,0BAA0B,GAAGP,OAAAA,CAAAA;QAEpDQ,MAAOC,CAAAA,MAAM,CAACF,wBAA0B,EAAA;AACtCL,YAAAA,WAAAA,EAAaC,sCAAmBJ,MAAQO,EAAAA,UAAAA,CAAAA;AAC1C,SAAA,CAAA,CAAA;QAEA,OAAOC,wBAAAA,CAAAA;AACT,KAAA;IAEA,OAAO;QACLN,KAAO,EAAA,KAAA;AACPC,QAAAA,WAAAA,EAAaC,sCAAmBJ,MAAQK,EAAAA,SAAAA,CAAAA;AACxC,QAAA,GAAGJ,OAAO;AACZ,KAAA,CAAA;AACF;;;;"}
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ var shelfMerge = require('./shelfMerge.cjs');
4
+
5
+ /**
6
+ * Prepares parameters and body for requestFn calls, handling infinite query logic
7
+ * @param queryParams - The query parameters that may contain body
8
+ * @param pageParam - The page parameter for infinite queries
9
+ * @param infinite - Whether this is for an infinite query
10
+ * @returns Object with prepared parameters and body
11
+ */ function prepareRequestFnParameters(queryParams, pageParam, infinite) {
12
+ const { body, ...parameters } = queryParams;
13
+ if (!infinite) {
14
+ return {
15
+ parameters: parameters,
16
+ body: body
17
+ };
18
+ }
19
+ // Handle infinite query parameters
20
+ const processedParameters = shelfMerge.shelfMerge(2, parameters, omitBodyFromPageParam(pageParam));
21
+ const processedBody = mergeBodyWithPageParam(body, pageParam);
22
+ return {
23
+ parameters: processedParameters,
24
+ body: processedBody
25
+ };
26
+ }
27
+ /**
28
+ * Remove body from pageParam if it exists
29
+ */ function omitBodyFromPageParam(pageParam) {
30
+ if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {
31
+ const { body: _body, ...pageParameters } = pageParam;
32
+ return pageParameters;
33
+ }
34
+ return pageParam;
35
+ }
36
+ /**
37
+ * Merge body with pageParam.body if pageParam contains body
38
+ */ function mergeBodyWithPageParam(body, pageParam) {
39
+ if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {
40
+ return shelfMerge.shelfMerge(1, body, pageParam.body);
41
+ }
42
+ return body;
43
+ }
44
+
45
+ exports.prepareRequestFnParameters = prepareRequestFnParameters;
46
+ //# sourceMappingURL=prepareRequestFnParameters.cjs.map
@@ -0,0 +1 @@
1
+ {"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;;;;"}
@@ -3,9 +3,9 @@
3
3
 
4
4
  var composeInfiniteQueryKey = require('./composeInfiniteQueryKey.cjs');
5
5
  var composeQueryKey = require('./composeQueryKey.cjs');
6
+ var prepareRequestFnParameters = require('./prepareRequestFnParameters.cjs');
6
7
  var requestFnResponseRejecter = require('./requestFnResponseRejecter.cjs');
7
8
  var requestFnResponseResolver = require('./requestFnResponseResolver.cjs');
8
- var shelfMerge = require('./shelfMerge.cjs');
9
9
 
10
10
  /**
11
11
  * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
@@ -13,10 +13,9 @@ var shelfMerge = require('./shelfMerge.cjs');
13
13
  */ function useComposeUseQueryOptions(qraftOptions, schema, args, infinite) {
14
14
  const [parameters, options] = args;
15
15
  const queryFn = options?.queryFn ?? function({ queryKey: [, queryParams], signal, meta, pageParam }) {
16
- const { body, ...parameters } = queryParams;
16
+ const { parameters, body } = prepareRequestFnParameters.prepareRequestFnParameters(queryParams, pageParam, infinite);
17
17
  return qraftOptions.requestFn(schema, {
18
- // @ts-expect-error - Too complex to type
19
- parameters: infinite ? shelfMerge.shelfMerge(2, parameters, pageParam) : parameters,
18
+ parameters: parameters,
20
19
  baseUrl: qraftOptions.baseUrl,
21
20
  body,
22
21
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"useComposeUseQueryOptions.cjs","sources":["../../../src/lib/useComposeUseQueryOptions.ts"],"sourcesContent":["'use client';\n\nimport type { ServiceOperationQueryKey } from '@openapi-qraft/tanstack-query-react-types';\nimport type { QueryClient, UseQueryOptions } from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema } from './requestFn.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\nimport { shelfMerge } from './shelfMerge.js';\n\n/**\n * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.\n * @internal\n */\nexport function useComposeUseQueryOptions(\n qraftOptions: CreateAPIQueryClientOptions,\n schema: OperationSchema,\n args: UseQueryOptionsArgs,\n infinite: boolean\n): never {\n const [parameters, options] = args;\n\n const queryFn =\n options?.queryFn ??\n function ({ queryKey: [, queryParams], signal, meta, pageParam }) {\n const { body, ...parameters } = queryParams as {\n body: BodyInit;\n parameters: Record<string, unknown>;\n };\n\n return qraftOptions\n .requestFn(schema, {\n // @ts-expect-error - Too complex to type\n parameters: infinite\n ? (shelfMerge(2, parameters, pageParam) as never)\n : parameters,\n baseUrl: qraftOptions.baseUrl,\n body,\n signal,\n meta,\n })\n .then(requestFnResponseResolver, requestFnResponseRejecter);\n };\n\n const queryKey = Array.isArray(parameters)\n ? (parameters as ServiceOperationQueryKey<OperationSchema, unknown>)\n : infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters);\n\n return [{ ...options, queryFn, queryKey }, qraftOptions.queryClient] as never;\n}\n\ntype UseQueryOptionsArgs = [\n parameters: unknown,\n options?: UseQueryOptions,\n queryClient?: QueryClient,\n];\n"],"names":["useComposeUseQueryOptions","qraftOptions","schema","args","infinite","parameters","options","queryFn","queryKey","queryParams","signal","meta","pageParam","body","requestFn","shelfMerge","baseUrl","then","requestFnResponseResolver","requestFnResponseRejecter","Array","isArray","composeInfiniteQueryKey","composeQueryKey","queryClient"],"mappings":"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"}
1
+ {"version":3,"file":"useComposeUseQueryOptions.cjs","sources":["../../../src/lib/useComposeUseQueryOptions.ts"],"sourcesContent":["'use client';\n\nimport type { ServiceOperationQueryKey } from '@openapi-qraft/tanstack-query-react-types';\nimport type { QueryClient, UseQueryOptions } from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema } from './requestFn.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { prepareRequestFnParameters } from './prepareRequestFnParameters.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\n\n/**\n * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.\n * @internal\n */\nexport function useComposeUseQueryOptions(\n qraftOptions: CreateAPIQueryClientOptions,\n schema: OperationSchema,\n args: UseQueryOptionsArgs,\n infinite: boolean\n): never {\n const [parameters, options] = args;\n\n const queryFn =\n options?.queryFn ??\n function ({ queryKey: [, queryParams], signal, meta, pageParam }) {\n const { parameters, body } = prepareRequestFnParameters(\n queryParams,\n pageParam,\n infinite\n );\n\n return qraftOptions\n .requestFn(schema, {\n parameters: parameters as never,\n baseUrl: qraftOptions.baseUrl,\n body,\n signal,\n meta,\n })\n .then(requestFnResponseResolver, requestFnResponseRejecter);\n };\n\n const queryKey = Array.isArray(parameters)\n ? (parameters as ServiceOperationQueryKey<OperationSchema, unknown>)\n : infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters);\n\n return [{ ...options, queryFn, queryKey }, qraftOptions.queryClient] as never;\n}\n\ntype UseQueryOptionsArgs = [\n parameters: unknown,\n options?: UseQueryOptions,\n queryClient?: QueryClient,\n];\n"],"names":["useComposeUseQueryOptions","qraftOptions","schema","args","infinite","parameters","options","queryFn","queryKey","queryParams","signal","meta","pageParam","body","prepareRequestFnParameters","requestFn","baseUrl","then","requestFnResponseResolver","requestFnResponseRejecter","Array","isArray","composeInfiniteQueryKey","composeQueryKey","queryClient"],"mappings":";;;;;;;;;AAYA,CAAA,CAAA,CAAA;;;CAIO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASA,CACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzCC,MAAuB,CACvBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAyB,CACzBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAA,CAAA,CAAA;CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAACC,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAQ,CAAA,CAAA,CAAGH,IAAAA,CAAAA;AAE9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,OACJD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAASC,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAU,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,EAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAAEC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAEC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA;QAC9D,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEP,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEQ,IAAI,CAAE,CAAA,CAAA,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3BL,YACAG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;QAGF,OAAOH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACJc,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACb,MAAQ,CAAA,CAAA,CAAA;CACjBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACZW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASf,aAAae,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7BH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACAH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;CAEDM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAACC,mDAA2BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWY,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAChB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACDD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACEkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChCkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBrB,CAAQG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;IAE9B,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAGC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAGP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAauB,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtE,CAAA;;"}
@@ -0,0 +1,24 @@
1
+ import { composeMutationFilters } from '../lib/composeMutationFilters.js';
2
+
3
+ function getMutationCache(qraftOptions, schema) {
4
+ const mutationCache = qraftOptions.queryClient.getMutationCache();
5
+ return wrapMutationCacheMethods(schema, mutationCache);
6
+ }
7
+ function wrapMutationCacheMethods(schema, original) {
8
+ return new Proxy(original, {
9
+ get (target, prop, receiver) {
10
+ if (prop === 'find' || prop === 'findAll') {
11
+ return function(...args) {
12
+ return Reflect.apply(target[prop], target, [
13
+ composeMutationFilters(schema, args[0]),
14
+ ...args.slice(1, args.length)
15
+ ]);
16
+ };
17
+ }
18
+ return Reflect.get(target, prop, receiver);
19
+ }
20
+ });
21
+ }
22
+
23
+ export { getMutationCache };
24
+ //# sourceMappingURL=getMutationCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMutationCache.js","sources":["../../../src/callbacks/getMutationCache.ts"],"sourcesContent":["import type { OperationSchema } from '@openapi-qraft/tanstack-query-react-types';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport { composeMutationFilters } from '../lib/composeMutationFilters.js';\n\nexport function getMutationCache(\n qraftOptions: CreateAPIQueryClientOptions,\n schema: OperationSchema\n) {\n const mutationCache = qraftOptions.queryClient.getMutationCache();\n\n return wrapMutationCacheMethods(schema, mutationCache);\n}\n\nfunction wrapMutationCacheMethods<\n T extends Record<'find' | 'findAll', (...args: any[]) => any>,\n>(schema: OperationSchema, original: T): T {\n return new Proxy(original, {\n get(target, prop, receiver) {\n if (prop === 'find' || prop === 'findAll') {\n return function (...args: any[]) {\n return Reflect.apply(target[prop], target, [\n composeMutationFilters(schema, args[0] as never),\n ...args.slice(1, args.length),\n ]);\n };\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n"],"names":["getMutationCache","qraftOptions","schema","mutationCache","queryClient","wrapMutationCacheMethods","original","Proxy","get","target","prop","receiver","args","Reflect","apply","composeMutationFilters","slice","length"],"mappings":";;AAIO,SAASA,gBAAAA,CACdC,YAAyC,EACzCC,MAAuB,EAAA;AAEvB,IAAA,MAAMC,aAAgBF,GAAAA,YAAAA,CAAaG,WAAW,CAACJ,gBAAgB,EAAA,CAAA;AAE/D,IAAA,OAAOK,yBAAyBH,MAAQC,EAAAA,aAAAA,CAAAA,CAAAA;AAC1C,CAAA;AAEA,SAASE,wBAAAA,CAEPH,MAAuB,EAAEI,QAAW,EAAA;IACpC,OAAO,IAAIC,MAAMD,QAAU,EAAA;AACzBE,QAAAA,GAAAA,CAAAA,CAAIC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAA;YACxB,IAAID,IAAAA,KAAS,MAAUA,IAAAA,IAAAA,KAAS,SAAW,EAAA;gBACzC,OAAO,SAAU,GAAGE,IAAW,EAAA;AAC7B,oBAAA,OAAOC,QAAQC,KAAK,CAACL,MAAM,CAACC,IAAAA,CAAK,EAAED,MAAQ,EAAA;wBACzCM,sBAAuBb,CAAAA,MAAAA,EAAQU,IAAI,CAAC,CAAE,CAAA,CAAA;AACnCA,wBAAAA,GAAAA,IAAAA,CAAKI,KAAK,CAAC,CAAGJ,EAAAA,IAAAA,CAAKK,MAAM,CAAA;AAC7B,qBAAA,CAAA,CAAA;AACH,iBAAA,CAAA;AACF,aAAA;AAEA,YAAA,OAAOJ,OAAQL,CAAAA,GAAG,CAACC,MAAAA,EAAQC,IAAMC,EAAAA,QAAAA,CAAAA,CAAAA;AACnC,SAAA;AACF,KAAA,CAAA,CAAA;AACF;;;;"}
@@ -23,6 +23,7 @@ export { removeQueries } from './removeQueries.js';
23
23
  export { refetchQueries } from './refetchQueries.js';
24
24
  export { isFetching } from './isFetching.js';
25
25
  export { isMutating } from './isMutating.js';
26
+ export { getMutationCache } from './getMutationCache.js';
26
27
  export { useIsFetching } from './useIsFetching.js';
27
28
  export { fetchQuery } from './fetchQuery.js';
28
29
  export { prefetchQuery } from './prefetchQuery.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
2
2
  import { composeQueryKey } from './composeQueryKey.js';
3
+ import { prepareRequestFnParameters } from './prepareRequestFnParameters.js';
3
4
  import { requestFnResponseRejecter } from './requestFnResponseRejecter.js';
4
5
  import { requestFnResponseResolver } from './requestFnResponseResolver.js';
5
- import { shelfMerge } from './shelfMerge.js';
6
6
 
7
7
  /**
8
8
  * Calls a query client fetch method with parameters and options,
@@ -19,9 +19,11 @@ import { shelfMerge } from './shelfMerge.js';
19
19
  throw new Error('callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive');
20
20
  }
21
21
  const queryFn = queryFnOption ?? (requestFn ? function({ queryKey: [, queryParams], signal, meta, pageParam }) {
22
+ const { parameters, body } = prepareRequestFnParameters(queryParams, pageParam, infinite);
22
23
  return requestFn(schema, {
23
- parameters: infinite ? shelfMerge(2, queryParams, pageParam) : queryParams,
24
+ parameters: parameters,
24
25
  baseUrl,
26
+ body,
25
27
  signal,
26
28
  meta
27
29
  }).then(requestFnResponseResolver, requestFnResponseRejecter);
@@ -1 +1 @@
1
- {"version":3,"file":"callQueryClientFetchMethod.js","sources":["../../../src/lib/callQueryClientFetchMethod.ts"],"sourcesContent":["import type { QueryClient } from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema, RequestFn } from './requestFn.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\nimport { shelfMerge } from './shelfMerge.js';\n\n/**\n * Calls a query client fetch method with parameters and options,\n * and automatically composes the `QueryKey` based on the schema and parameters.\n */\nexport function callQueryClientMethodWithQueryKey<\n QFMethod extends QueryKeyMethods,\n>(\n qraftOptions: CreateAPIQueryClientOptions,\n queryFilterMethod: QFMethod,\n schema: OperationSchema,\n infinite: boolean,\n args: QueryClientMethodArgs<QFMethod>\n): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {\n const {\n requestFn: requestFnOption,\n baseUrl: baseUrlOption,\n queryFn: queryFnOption,\n parameters,\n ...options\n } = args[0] ?? {};\n\n const queryClient = qraftOptions.queryClient;\n const baseUrl = baseUrlOption ?? qraftOptions.baseUrl;\n\n if (queryFnOption && requestFnOption) {\n throw new Error(\n 'callQueryClientMethodWithQueryKey: options.queryFn and options.requestFn are mutually exclusive'\n );\n }\n\n const requestFn = requestFnOption ?? qraftOptions.requestFn;\n\n if (options.queryKey && parameters) {\n throw new Error(\n 'callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive'\n );\n }\n\n const queryFn =\n queryFnOption ??\n (requestFn\n ? // @ts-expect-error - Too complex union to type\n function ({ queryKey: [, queryParams], signal, meta, pageParam }) {\n return requestFn(schema, {\n parameters: infinite\n ? (shelfMerge(2, queryParams, pageParam) as never)\n : queryParams,\n baseUrl,\n signal,\n meta,\n }).then(requestFnResponseResolver, requestFnResponseRejecter);\n }\n : undefined);\n\n // @ts-expect-error - Too complex union to type\n return queryClient[queryFilterMethod]({\n ...options,\n queryFn,\n queryKey:\n options.queryKey ??\n (infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters)),\n });\n}\n\ntype QueryClientMethodArgs<QMethod extends keyof QueryClientPrototype> = [\n options: Parameters<QueryClientPrototype[QMethod]>[0] & {\n parameters?: unknown;\n baseUrl?: string;\n requestFn?: RequestFn<unknown, unknown>;\n },\n queryClient: QueryClient,\n];\n\ntype QueryKeyMethods =\n | QueryKeyMethod<'fetchQuery'>\n | QueryKeyMethod<'prefetchQuery'>\n | QueryKeyMethod<'ensureQueryData'>\n | QueryKeyMethod<'fetchInfiniteQuery'>\n | QueryKeyMethod<'prefetchInfiniteQuery'>\n | QueryKeyMethod<'ensureInfiniteQueryData'>;\n\ntype QueryClientPrototype = typeof QueryClient.prototype;\n\ntype QueryKeyMethod<QFMethod extends keyof typeof QueryClient.prototype> =\n QFMethod;\n"],"names":["callQueryClientMethodWithQueryKey","qraftOptions","queryFilterMethod","schema","infinite","args","requestFn","requestFnOption","baseUrl","baseUrlOption","queryFn","queryFnOption","parameters","options","queryClient","Error","queryKey","queryParams","signal","meta","pageParam","shelfMerge","then","requestFnResponseResolver","requestFnResponseRejecter","undefined","composeInfiniteQueryKey","composeQueryKey"],"mappings":";;;;;;AASA;;;IAIO,SAASA,iCAAAA,CAGdC,YAAyC,EACzCC,iBAA2B,EAC3BC,MAAuB,EACvBC,QAAiB,EACjBC,IAAqC,EAAA;AAErC,IAAA,MAAM,EACJC,SAAWC,EAAAA,eAAe,EAC1BC,OAASC,EAAAA,aAAa,EACtBC,OAASC,EAAAA,aAAa,EACtBC,UAAU,EACV,GAAGC,OACJ,EAAA,GAAGR,IAAI,CAAC,CAAA,CAAE,IAAI,EAAC,CAAA;IAEhB,MAAMS,WAAAA,GAAcb,aAAaa,WAAW,CAAA;IAC5C,MAAMN,OAAAA,GAAUC,aAAiBR,IAAAA,YAAAA,CAAaO,OAAO,CAAA;AAErD,IAAA,IAAIG,iBAAiBJ,eAAiB,EAAA;AACpC,QAAA,MAAM,IAAIQ,KACR,CAAA,iGAAA,CAAA,CAAA;AAEJ,KAAA;IAEA,MAAMT,SAAAA,GAAYC,eAAmBN,IAAAA,YAAAA,CAAaK,SAAS,CAAA;IAE3D,IAAIO,OAAAA,CAAQG,QAAQ,IAAIJ,UAAY,EAAA;AAClC,QAAA,MAAM,IAAIG,KACR,CAAA,mGAAA,CAAA,CAAA;AAEJ,KAAA;AAEA,IAAA,MAAML,OACJC,GAAAA,aAAAA,KACCL,SAAAA,GAEG,SAAU,EAAEU,QAAAA,EAAU,GAAGC,WAAAA,CAAY,EAAEC,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,EAAA;AAC9D,QAAA,OAAOd,UAAUH,MAAQ,EAAA;AACvBS,YAAAA,UAAAA,EAAYR,QACPiB,GAAAA,UAAAA,CAAW,CAAGJ,EAAAA,WAAAA,EAAaG,SAC5BH,CAAAA,GAAAA,WAAAA;AACJT,YAAAA,OAAAA;AACAU,YAAAA,MAAAA;AACAC,YAAAA,IAAAA;SACCG,CAAAA,CAAAA,IAAI,CAACC,yBAA2BC,EAAAA,yBAAAA,CAAAA,CAAAA;AACrC,KAAA,GACAC,SAAQ,CAAA,CAAA;;IAGd,OAAOX,WAAW,CAACZ,iBAAAA,CAAkB,CAAC;AACpC,QAAA,GAAGW,OAAO;AACVH,QAAAA,OAAAA;QACAM,QACEH,EAAAA,OAAAA,CAAQG,QAAQ,KACfZ,QAAAA,GACGsB,wBAAwBvB,MAAQS,EAAAA,UAAAA,CAAAA,GAChCe,eAAgBxB,CAAAA,MAAAA,EAAQS,UAAU,CAAA,CAAA;AAC1C,KAAA,CAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"callQueryClientFetchMethod.js","sources":["../../../src/lib/callQueryClientFetchMethod.ts"],"sourcesContent":["import type { QueryClient } from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema, RequestFn } from './requestFn.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { prepareRequestFnParameters } from './prepareRequestFnParameters.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\n\n/**\n * Calls a query client fetch method with parameters and options,\n * and automatically composes the `QueryKey` based on the schema and parameters.\n */\nexport function callQueryClientMethodWithQueryKey<\n QFMethod extends QueryKeyMethods,\n>(\n qraftOptions: CreateAPIQueryClientOptions,\n queryFilterMethod: QFMethod,\n schema: OperationSchema,\n infinite: boolean,\n args: QueryClientMethodArgs<QFMethod>\n): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {\n const {\n requestFn: requestFnOption,\n baseUrl: baseUrlOption,\n queryFn: queryFnOption,\n parameters,\n ...options\n } = args[0] ?? {};\n\n const queryClient = qraftOptions.queryClient;\n const baseUrl = baseUrlOption ?? qraftOptions.baseUrl;\n\n if (queryFnOption && requestFnOption) {\n throw new Error(\n 'callQueryClientMethodWithQueryKey: options.queryFn and options.requestFn are mutually exclusive'\n );\n }\n\n const requestFn = requestFnOption ?? qraftOptions.requestFn;\n\n if (options.queryKey && parameters) {\n throw new Error(\n 'callQueryClientMethodWithQueryKey: options.queryKey and options.parameters are mutually exclusive'\n );\n }\n\n const queryFn =\n queryFnOption ??\n (requestFn\n ? // @ts-expect-error - Too complex union to type\n function ({ queryKey: [, queryParams], signal, meta, pageParam }) {\n const { parameters, body } = prepareRequestFnParameters(\n queryParams,\n pageParam,\n infinite\n );\n\n return requestFn(schema, {\n parameters: parameters as never,\n baseUrl,\n body,\n signal,\n meta,\n }).then(requestFnResponseResolver, requestFnResponseRejecter);\n }\n : undefined);\n\n // @ts-expect-error - Too complex union to type\n return queryClient[queryFilterMethod]({\n ...options,\n queryFn,\n queryKey:\n options.queryKey ??\n (infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters)),\n });\n}\n\ntype QueryClientMethodArgs<QMethod extends keyof QueryClientPrototype> = [\n options: Parameters<QueryClientPrototype[QMethod]>[0] & {\n parameters?: unknown;\n baseUrl?: string;\n requestFn?: RequestFn<unknown, unknown>;\n },\n queryClient: QueryClient,\n];\n\ntype QueryKeyMethods =\n | QueryKeyMethod<'fetchQuery'>\n | QueryKeyMethod<'prefetchQuery'>\n | QueryKeyMethod<'ensureQueryData'>\n | QueryKeyMethod<'fetchInfiniteQuery'>\n | QueryKeyMethod<'prefetchInfiniteQuery'>\n | QueryKeyMethod<'ensureInfiniteQueryData'>;\n\ntype QueryClientPrototype = typeof QueryClient.prototype;\n\ntype QueryKeyMethod<QFMethod extends keyof typeof QueryClient.prototype> =\n QFMethod;\n"],"names":["callQueryClientMethodWithQueryKey","qraftOptions","queryFilterMethod","schema","infinite","args","requestFn","requestFnOption","baseUrl","baseUrlOption","queryFn","queryFnOption","parameters","options","queryClient","Error","queryKey","queryParams","signal","meta","pageParam","body","prepareRequestFnParameters","then","requestFnResponseResolver","requestFnResponseRejecter","undefined","composeInfiniteQueryKey","composeQueryKey"],"mappings":";;;;;;AASA;;;IAIO,SAASA,iCAAAA,CAGdC,YAAyC,EACzCC,iBAA2B,EAC3BC,MAAuB,EACvBC,QAAiB,EACjBC,IAAqC,EAAA;AAErC,IAAA,MAAM,EACJC,SAAWC,EAAAA,eAAe,EAC1BC,OAASC,EAAAA,aAAa,EACtBC,OAASC,EAAAA,aAAa,EACtBC,UAAU,EACV,GAAGC,OACJ,EAAA,GAAGR,IAAI,CAAC,CAAA,CAAE,IAAI,EAAC,CAAA;IAEhB,MAAMS,WAAAA,GAAcb,aAAaa,WAAW,CAAA;IAC5C,MAAMN,OAAAA,GAAUC,aAAiBR,IAAAA,YAAAA,CAAaO,OAAO,CAAA;AAErD,IAAA,IAAIG,iBAAiBJ,eAAiB,EAAA;AACpC,QAAA,MAAM,IAAIQ,KACR,CAAA,iGAAA,CAAA,CAAA;AAEJ,KAAA;IAEA,MAAMT,SAAAA,GAAYC,eAAmBN,IAAAA,YAAAA,CAAaK,SAAS,CAAA;IAE3D,IAAIO,OAAAA,CAAQG,QAAQ,IAAIJ,UAAY,EAAA;AAClC,QAAA,MAAM,IAAIG,KACR,CAAA,mGAAA,CAAA,CAAA;AAEJ,KAAA;AAEA,IAAA,MAAML,OACJC,GAAAA,aAAAA,KACCL,SAAAA,GAEG,SAAU,EAAEU,QAAAA,EAAU,GAAGC,WAAAA,CAAY,EAAEC,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,EAAA;QAC9D,MAAM,EAAER,UAAU,EAAES,IAAI,EAAE,GAAGC,0BAAAA,CAC3BL,aACAG,SACAhB,EAAAA,QAAAA,CAAAA,CAAAA;AAGF,QAAA,OAAOE,UAAUH,MAAQ,EAAA;YACvBS,UAAYA,EAAAA,UAAAA;AACZJ,YAAAA,OAAAA;AACAa,YAAAA,IAAAA;AACAH,YAAAA,MAAAA;AACAC,YAAAA,IAAAA;SACCI,CAAAA,CAAAA,IAAI,CAACC,yBAA2BC,EAAAA,yBAAAA,CAAAA,CAAAA;AACrC,KAAA,GACAC,SAAQ,CAAA,CAAA;;IAGd,OAAOZ,WAAW,CAACZ,iBAAAA,CAAkB,CAAC;AACpC,QAAA,GAAGW,OAAO;AACVH,QAAAA,OAAAA;QACAM,QACEH,EAAAA,OAAAA,CAAQG,QAAQ,KACfZ,QAAAA,GACGuB,wBAAwBxB,MAAQS,EAAAA,UAAAA,CAAAA,GAChCgB,eAAgBzB,CAAAA,MAAAA,EAAQS,UAAU,CAAA,CAAA;AAC1C,KAAA,CAAA,CAAA;AACF;;;;"}
@@ -8,6 +8,7 @@ import { composeMutationKey } from './composeMutationKey.js';
8
8
  */ function composeMutationFilters(schema, filters) {
9
9
  if (!filters) {
10
10
  return {
11
+ exact: false,
11
12
  mutationKey: composeMutationKey(schema, undefined)
12
13
  };
13
14
  }
@@ -25,8 +26,9 @@ import { composeMutationKey } from './composeMutationKey.js';
25
26
  return filtersWithoutParameters;
26
27
  }
27
28
  return {
28
- ...filters,
29
- mutationKey: composeMutationKey(schema, undefined)
29
+ exact: false,
30
+ mutationKey: composeMutationKey(schema, undefined),
31
+ ...filters
30
32
  };
31
33
  }
32
34
 
@@ -1 +1 @@
1
- {"version":3,"file":"composeMutationFilters.js","sources":["../../../src/lib/composeMutationFilters.ts"],"sourcesContent":["import type { OperationSchema } from './requestFn.js';\nimport { composeMutationKey } from './composeMutationKey.js';\n\n/**\n * Replaces the `parameters` field in the filters with a `mutationKey` field based on the schema.\n * If no filters are provided, a `mutationKey` will be composed schema's base query key.\n * @param schema\n * @param filters\n */\nexport function composeMutationFilters<Filters extends object>(\n schema: OperationSchema,\n filters: Filters | undefined\n) {\n if (!filters) {\n return {\n mutationKey: composeMutationKey(schema, undefined),\n };\n }\n\n if (filters && 'mutationKey' in filters && 'parameters' in filters) {\n throw new Error(\n `'composeMutationFilters': 'mutationKey' and 'parameters' cannot be used together`\n );\n }\n\n if ('mutationKey' in filters) {\n return filters;\n }\n\n if ('parameters' in filters) {\n const { parameters, ...filtersWithoutParameters } = filters;\n\n Object.assign(filtersWithoutParameters, {\n mutationKey: composeMutationKey(schema, parameters),\n });\n\n return filtersWithoutParameters;\n }\n\n return {\n ...filters,\n mutationKey: composeMutationKey(schema, undefined),\n };\n}\n"],"names":["composeMutationFilters","schema","filters","mutationKey","composeMutationKey","undefined","Error","parameters","filtersWithoutParameters","Object","assign"],"mappings":";;AAGA;;;;;AAKC,IACM,SAASA,sBACdC,CAAAA,MAAuB,EACvBC,OAA4B,EAAA;AAE5B,IAAA,IAAI,CAACA,OAAS,EAAA;QACZ,OAAO;AACLC,YAAAA,WAAAA,EAAaC,mBAAmBH,MAAQI,EAAAA,SAAAA,CAAAA;AAC1C,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,IAAIH,OAAW,IAAA,aAAA,IAAiBA,OAAW,IAAA,YAAA,IAAgBA,OAAS,EAAA;AAClE,QAAA,MAAM,IAAII,KAAAA,CACR,CAAC,gFAAgF,CAAC,CAAA,CAAA;AAEtF,KAAA;AAEA,IAAA,IAAI,iBAAiBJ,OAAS,EAAA;QAC5B,OAAOA,OAAAA,CAAAA;AACT,KAAA;AAEA,IAAA,IAAI,gBAAgBA,OAAS,EAAA;AAC3B,QAAA,MAAM,EAAEK,UAAU,EAAE,GAAGC,0BAA0B,GAAGN,OAAAA,CAAAA;QAEpDO,MAAOC,CAAAA,MAAM,CAACF,wBAA0B,EAAA;AACtCL,YAAAA,WAAAA,EAAaC,mBAAmBH,MAAQM,EAAAA,UAAAA,CAAAA;AAC1C,SAAA,CAAA,CAAA;QAEA,OAAOC,wBAAAA,CAAAA;AACT,KAAA;IAEA,OAAO;AACL,QAAA,GAAGN,OAAO;AACVC,QAAAA,WAAAA,EAAaC,mBAAmBH,MAAQI,EAAAA,SAAAA,CAAAA;AAC1C,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"composeMutationFilters.js","sources":["../../../src/lib/composeMutationFilters.ts"],"sourcesContent":["import type { OperationSchema } from './requestFn.js';\nimport { composeMutationKey } from './composeMutationKey.js';\n\n/**\n * Replaces the `parameters` field in the filters with a `mutationKey` field based on the schema.\n * If no filters are provided, a `mutationKey` will be composed schema's base query key.\n * @param schema\n * @param filters\n */\nexport function composeMutationFilters<Filters extends object>(\n schema: OperationSchema,\n filters: Filters | undefined\n) {\n if (!filters) {\n return {\n exact: false,\n mutationKey: composeMutationKey(schema, undefined),\n };\n }\n\n if (filters && 'mutationKey' in filters && 'parameters' in filters) {\n throw new Error(\n `'composeMutationFilters': 'mutationKey' and 'parameters' cannot be used together`\n );\n }\n\n if ('mutationKey' in filters) {\n return filters;\n }\n\n if ('parameters' in filters) {\n const { parameters, ...filtersWithoutParameters } = filters;\n\n Object.assign(filtersWithoutParameters, {\n mutationKey: composeMutationKey(schema, parameters),\n });\n\n return filtersWithoutParameters;\n }\n\n return {\n exact: false,\n mutationKey: composeMutationKey(schema, undefined),\n ...filters,\n };\n}\n"],"names":["composeMutationFilters","schema","filters","exact","mutationKey","composeMutationKey","undefined","Error","parameters","filtersWithoutParameters","Object","assign"],"mappings":";;AAGA;;;;;AAKC,IACM,SAASA,sBACdC,CAAAA,MAAuB,EACvBC,OAA4B,EAAA;AAE5B,IAAA,IAAI,CAACA,OAAS,EAAA;QACZ,OAAO;YACLC,KAAO,EAAA,KAAA;AACPC,YAAAA,WAAAA,EAAaC,mBAAmBJ,MAAQK,EAAAA,SAAAA,CAAAA;AAC1C,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,IAAIJ,OAAW,IAAA,aAAA,IAAiBA,OAAW,IAAA,YAAA,IAAgBA,OAAS,EAAA;AAClE,QAAA,MAAM,IAAIK,KAAAA,CACR,CAAC,gFAAgF,CAAC,CAAA,CAAA;AAEtF,KAAA;AAEA,IAAA,IAAI,iBAAiBL,OAAS,EAAA;QAC5B,OAAOA,OAAAA,CAAAA;AACT,KAAA;AAEA,IAAA,IAAI,gBAAgBA,OAAS,EAAA;AAC3B,QAAA,MAAM,EAAEM,UAAU,EAAE,GAAGC,0BAA0B,GAAGP,OAAAA,CAAAA;QAEpDQ,MAAOC,CAAAA,MAAM,CAACF,wBAA0B,EAAA;AACtCL,YAAAA,WAAAA,EAAaC,mBAAmBJ,MAAQO,EAAAA,UAAAA,CAAAA;AAC1C,SAAA,CAAA,CAAA;QAEA,OAAOC,wBAAAA,CAAAA;AACT,KAAA;IAEA,OAAO;QACLN,KAAO,EAAA,KAAA;AACPC,QAAAA,WAAAA,EAAaC,mBAAmBJ,MAAQK,EAAAA,SAAAA,CAAAA;AACxC,QAAA,GAAGJ,OAAO;AACZ,KAAA,CAAA;AACF;;;;"}
@@ -0,0 +1,44 @@
1
+ import { shelfMerge } from './shelfMerge.js';
2
+
3
+ /**
4
+ * Prepares parameters and body for requestFn calls, handling infinite query logic
5
+ * @param queryParams - The query parameters that may contain body
6
+ * @param pageParam - The page parameter for infinite queries
7
+ * @param infinite - Whether this is for an infinite query
8
+ * @returns Object with prepared parameters and body
9
+ */ function prepareRequestFnParameters(queryParams, pageParam, infinite) {
10
+ const { body, ...parameters } = queryParams;
11
+ if (!infinite) {
12
+ return {
13
+ parameters: parameters,
14
+ body: body
15
+ };
16
+ }
17
+ // Handle infinite query parameters
18
+ const processedParameters = shelfMerge(2, parameters, omitBodyFromPageParam(pageParam));
19
+ const processedBody = mergeBodyWithPageParam(body, pageParam);
20
+ return {
21
+ parameters: processedParameters,
22
+ body: processedBody
23
+ };
24
+ }
25
+ /**
26
+ * Remove body from pageParam if it exists
27
+ */ function omitBodyFromPageParam(pageParam) {
28
+ if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {
29
+ const { body: _body, ...pageParameters } = pageParam;
30
+ return pageParameters;
31
+ }
32
+ return pageParam;
33
+ }
34
+ /**
35
+ * Merge body with pageParam.body if pageParam contains body
36
+ */ function mergeBodyWithPageParam(body, pageParam) {
37
+ if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {
38
+ return shelfMerge(1, body, pageParam.body);
39
+ }
40
+ return body;
41
+ }
42
+
43
+ export { prepareRequestFnParameters };
44
+ //# sourceMappingURL=prepareRequestFnParameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareRequestFnParameters.js","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,UAAAA,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,UAAW,CAAA,CAAA,EAAGH,IAAMF,EAAAA,SAAAA,CAAUE,IAAI,CAAA,CAAA;AAC3C,KAAA;IAEA,OAAOA,IAAAA,CAAAA;AACT;;;;"}
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
3
3
  import { composeQueryKey } from './composeQueryKey.js';
4
+ import { prepareRequestFnParameters } from './prepareRequestFnParameters.js';
4
5
  import { requestFnResponseRejecter } from './requestFnResponseRejecter.js';
5
6
  import { requestFnResponseResolver } from './requestFnResponseResolver.js';
6
- import { shelfMerge } from './shelfMerge.js';
7
7
 
8
8
  /**
9
9
  * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
@@ -11,10 +11,9 @@ import { shelfMerge } from './shelfMerge.js';
11
11
  */ function useComposeUseQueryOptions(qraftOptions, schema, args, infinite) {
12
12
  const [parameters, options] = args;
13
13
  const queryFn = options?.queryFn ?? function({ queryKey: [, queryParams], signal, meta, pageParam }) {
14
- const { body, ...parameters } = queryParams;
14
+ const { parameters, body } = prepareRequestFnParameters(queryParams, pageParam, infinite);
15
15
  return qraftOptions.requestFn(schema, {
16
- // @ts-expect-error - Too complex to type
17
- parameters: infinite ? shelfMerge(2, parameters, pageParam) : parameters,
16
+ parameters: parameters,
18
17
  baseUrl: qraftOptions.baseUrl,
19
18
  body,
20
19
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"useComposeUseQueryOptions.js","sources":["../../../src/lib/useComposeUseQueryOptions.ts"],"sourcesContent":["'use client';\n\nimport type { ServiceOperationQueryKey } from '@openapi-qraft/tanstack-query-react-types';\nimport type { QueryClient, UseQueryOptions } from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema } from './requestFn.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\nimport { shelfMerge } from './shelfMerge.js';\n\n/**\n * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.\n * @internal\n */\nexport function useComposeUseQueryOptions(\n qraftOptions: CreateAPIQueryClientOptions,\n schema: OperationSchema,\n args: UseQueryOptionsArgs,\n infinite: boolean\n): never {\n const [parameters, options] = args;\n\n const queryFn =\n options?.queryFn ??\n function ({ queryKey: [, queryParams], signal, meta, pageParam }) {\n const { body, ...parameters } = queryParams as {\n body: BodyInit;\n parameters: Record<string, unknown>;\n };\n\n return qraftOptions\n .requestFn(schema, {\n // @ts-expect-error - Too complex to type\n parameters: infinite\n ? (shelfMerge(2, parameters, pageParam) as never)\n : parameters,\n baseUrl: qraftOptions.baseUrl,\n body,\n signal,\n meta,\n })\n .then(requestFnResponseResolver, requestFnResponseRejecter);\n };\n\n const queryKey = Array.isArray(parameters)\n ? (parameters as ServiceOperationQueryKey<OperationSchema, unknown>)\n : infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters);\n\n return [{ ...options, queryFn, queryKey }, qraftOptions.queryClient] as never;\n}\n\ntype UseQueryOptionsArgs = [\n parameters: unknown,\n options?: UseQueryOptions,\n queryClient?: QueryClient,\n];\n"],"names":["useComposeUseQueryOptions","qraftOptions","schema","args","infinite","parameters","options","queryFn","queryKey","queryParams","signal","meta","pageParam","body","requestFn","shelfMerge","baseUrl","then","requestFnResponseResolver","requestFnResponseRejecter","Array","isArray","composeInfiniteQueryKey","composeQueryKey","queryClient"],"mappings":"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"}
1
+ {"version":3,"file":"useComposeUseQueryOptions.js","sources":["../../../src/lib/useComposeUseQueryOptions.ts"],"sourcesContent":["'use client';\n\nimport type { ServiceOperationQueryKey } from '@openapi-qraft/tanstack-query-react-types';\nimport type { QueryClient, UseQueryOptions } from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema } from './requestFn.js';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { prepareRequestFnParameters } from './prepareRequestFnParameters.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\n\n/**\n * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.\n * @internal\n */\nexport function useComposeUseQueryOptions(\n qraftOptions: CreateAPIQueryClientOptions,\n schema: OperationSchema,\n args: UseQueryOptionsArgs,\n infinite: boolean\n): never {\n const [parameters, options] = args;\n\n const queryFn =\n options?.queryFn ??\n function ({ queryKey: [, queryParams], signal, meta, pageParam }) {\n const { parameters, body } = prepareRequestFnParameters(\n queryParams,\n pageParam,\n infinite\n );\n\n return qraftOptions\n .requestFn(schema, {\n parameters: parameters as never,\n baseUrl: qraftOptions.baseUrl,\n body,\n signal,\n meta,\n })\n .then(requestFnResponseResolver, requestFnResponseRejecter);\n };\n\n const queryKey = Array.isArray(parameters)\n ? (parameters as ServiceOperationQueryKey<OperationSchema, unknown>)\n : infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters);\n\n return [{ ...options, queryFn, queryKey }, qraftOptions.queryClient] as never;\n}\n\ntype UseQueryOptionsArgs = [\n parameters: unknown,\n options?: UseQueryOptions,\n queryClient?: QueryClient,\n];\n"],"names":["useComposeUseQueryOptions","qraftOptions","schema","args","infinite","parameters","options","queryFn","queryKey","queryParams","signal","meta","pageParam","body","prepareRequestFnParameters","requestFn","baseUrl","then","requestFnResponseResolver","requestFnResponseRejecter","Array","isArray","composeInfiniteQueryKey","composeQueryKey","queryClient"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { OperationSchema } from '@openapi-qraft/tanstack-query-react-types';
2
+ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
3
+ export declare function getMutationCache(qraftOptions: CreateAPIQueryClientOptions, schema: OperationSchema): import("@tanstack/query-core").MutationCache;
4
+ //# sourceMappingURL=getMutationCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMutationCache.d.ts","sourceRoot":"","sources":["../../../src/callbacks/getMutationCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAGxE,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,2BAA2B,EACzC,MAAM,EAAE,eAAe,gDAKxB"}
@@ -23,6 +23,7 @@ export { removeQueries } from './removeQueries.js';
23
23
  export { refetchQueries } from './refetchQueries.js';
24
24
  export { isFetching } from './isFetching.js';
25
25
  export { isMutating } from './isMutating.js';
26
+ export { getMutationCache } from './getMutationCache.js';
26
27
  export { useIsFetching } from './useIsFetching.js';
27
28
  export { fetchQuery } from './fetchQuery.js';
28
29
  export { prefetchQuery } from './prefetchQuery.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/callbacks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/callbacks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"callQueryClientFetchMethod.d.ts","sourceRoot":"","sources":["../../../src/lib/callQueryClientFetchMethod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOjE;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,SAAS,eAAe,EAEhC,YAAY,EAAE,2BAA2B,EACzC,iBAAiB,EAAE,QAAQ,EAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACpC,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAoDtD;AAED,KAAK,qBAAqB,CAAC,OAAO,SAAS,MAAM,oBAAoB,IAAI;IACvE,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACtD,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACzC;IACD,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,KAAK,eAAe,GAChB,cAAc,CAAC,YAAY,CAAC,GAC5B,cAAc,CAAC,eAAe,CAAC,GAC/B,cAAc,CAAC,iBAAiB,CAAC,GACjC,cAAc,CAAC,oBAAoB,CAAC,GACpC,cAAc,CAAC,uBAAuB,CAAC,GACvC,cAAc,CAAC,yBAAyB,CAAC,CAAC;AAE9C,KAAK,oBAAoB,GAAG,OAAO,WAAW,CAAC,SAAS,CAAC;AAEzD,KAAK,cAAc,CAAC,QAAQ,SAAS,MAAM,OAAO,WAAW,CAAC,SAAS,IACrE,QAAQ,CAAC"}
1
+ {"version":3,"file":"callQueryClientFetchMethod.d.ts","sourceRoot":"","sources":["../../../src/lib/callQueryClientFetchMethod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOjE;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,SAAS,eAAe,EAEhC,YAAY,EAAE,2BAA2B,EACzC,iBAAiB,EAAE,QAAQ,EAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACpC,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAyDtD;AAED,KAAK,qBAAqB,CAAC,OAAO,SAAS,MAAM,oBAAoB,IAAI;IACvE,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACtD,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACzC;IACD,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,KAAK,eAAe,GAChB,cAAc,CAAC,YAAY,CAAC,GAC5B,cAAc,CAAC,eAAe,CAAC,GAC/B,cAAc,CAAC,iBAAiB,CAAC,GACjC,cAAc,CAAC,oBAAoB,CAAC,GACpC,cAAc,CAAC,uBAAuB,CAAC,GACvC,cAAc,CAAC,yBAAyB,CAAC,CAAC;AAE9C,KAAK,oBAAoB,GAAG,OAAO,WAAW,CAAC,SAAS,CAAC;AAEzD,KAAK,cAAc,CAAC,QAAQ,SAAS,MAAM,OAAO,WAAW,CAAC,SAAS,IACrE,QAAQ,CAAC"}
@@ -6,6 +6,7 @@ import type { OperationSchema } from './requestFn.js';
6
6
  * @param filters
7
7
  */
8
8
  export declare function composeMutationFilters<Filters extends object>(schema: OperationSchema, filters: Filters | undefined): (Filters & Record<"mutationKey", unknown>) | Omit<Filters & Record<"parameters", unknown>, "parameters"> | {
9
+ exact: boolean;
9
10
  mutationKey: [OperationSchema];
10
11
  };
11
12
  //# sourceMappingURL=composeMutationFilters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composeMutationFilters.d.ts","sourceRoot":"","sources":["../../../src/lib/composeMutationFilters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,SAAS,MAAM,EAC3D,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,GAAG,SAAS;;EAgC7B"}
1
+ {"version":3,"file":"composeMutationFilters.d.ts","sourceRoot":"","sources":["../../../src/lib/composeMutationFilters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,SAAS,MAAM,EAC3D,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,GAAG,SAAS;;;EAkC7B"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Prepares parameters and body for requestFn calls, handling infinite query logic
3
+ * @param queryParams - The query parameters that may contain body
4
+ * @param pageParam - The page parameter for infinite queries
5
+ * @param infinite - Whether this is for an infinite query
6
+ * @returns Object with prepared parameters and body
7
+ */
8
+ export declare function prepareRequestFnParameters<TQueryParams>(queryParams: TQueryParams, pageParam: unknown, infinite: boolean): {
9
+ parameters: TQueryParams extends {
10
+ body: any;
11
+ } ? Omit<TQueryParams, 'body'> : TQueryParams;
12
+ body: BodyInit | undefined;
13
+ };
14
+ //# sourceMappingURL=prepareRequestFnParameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareRequestFnParameters.d.ts","sourceRoot":"","sources":["../../../src/lib/prepareRequestFnParameters.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EACrD,WAAW,EAAE,YAAY,EACzB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,OAAO,GAChB;IACD,UAAU,EAAE,YAAY,SAAS;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,GAC1C,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAC1B,YAAY,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5B,CAyBA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useComposeUseQueryOptions.d.ts","sourceRoot":"","sources":["../../../src/lib/useComposeUseQueryOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOtD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,2BAA2B,EACzC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,OAAO,GAChB,KAAK,CAgCP;AAED,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,OAAO;IACnB,OAAO,CAAC,EAAE,eAAe;IACzB,WAAW,CAAC,EAAE,WAAW;CAC1B,CAAC"}
1
+ {"version":3,"file":"useComposeUseQueryOptions.d.ts","sourceRoot":"","sources":["../../../src/lib/useComposeUseQueryOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOtD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,2BAA2B,EACzC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,OAAO,GAChB,KAAK,CA8BP;AAED,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,OAAO;IACnB,OAAO,CAAC,EAAE,eAAe;IACzB,WAAW,CAAC,EAAE,WAAW;CAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openapi-qraft/react",
3
- "version": "2.10.1",
3
+ "version": "2.11.0",
4
4
  "description": "OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.",
5
5
  "scripts": {
6
6
  "build": "NODE_ENV=production rollup --config rollup.config.mjs && tsc --project tsconfig.build.json --emitDeclarationOnly",
@@ -15,18 +15,18 @@
15
15
  },
16
16
  "sideEffects": false,
17
17
  "dependencies": {
18
- "@openapi-qraft/tanstack-query-react-types": "2.10.1"
18
+ "@openapi-qraft/tanstack-query-react-types": "2.11.0"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "@tanstack/react-query": "^5.80.0",
22
22
  "react": "^18 || ^19"
23
23
  },
24
24
  "devDependencies": {
25
- "@openapi-qraft/cli": "2.10.1",
25
+ "@openapi-qraft/cli": "2.11.0",
26
26
  "@openapi-qraft/eslint-config": "1.0.1",
27
- "@openapi-qraft/openapi-typescript-plugin": "^1.2.27",
27
+ "@openapi-qraft/openapi-typescript-plugin": "^1.2.29",
28
28
  "@openapi-qraft/rollup-config": "1.1.1",
29
- "@openapi-qraft/tanstack-query-react-plugin": "2.10.1",
29
+ "@openapi-qraft/tanstack-query-react-plugin": "2.11.0",
30
30
  "@openapi-qraft/test-fixtures": "1.1.1",
31
31
  "@tanstack/react-query": "^5.80.6",
32
32
  "@testing-library/dom": "^10.4.0",
@@ -0,0 +1,31 @@
1
+ import type { OperationSchema } from '@openapi-qraft/tanstack-query-react-types';
2
+ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
3
+ import { composeMutationFilters } from '../lib/composeMutationFilters.js';
4
+
5
+ export function getMutationCache(
6
+ qraftOptions: CreateAPIQueryClientOptions,
7
+ schema: OperationSchema
8
+ ) {
9
+ const mutationCache = qraftOptions.queryClient.getMutationCache();
10
+
11
+ return wrapMutationCacheMethods(schema, mutationCache);
12
+ }
13
+
14
+ function wrapMutationCacheMethods<
15
+ T extends Record<'find' | 'findAll', (...args: any[]) => any>,
16
+ >(schema: OperationSchema, original: T): T {
17
+ return new Proxy(original, {
18
+ get(target, prop, receiver) {
19
+ if (prop === 'find' || prop === 'findAll') {
20
+ return function (...args: any[]) {
21
+ return Reflect.apply(target[prop], target, [
22
+ composeMutationFilters(schema, args[0] as never),
23
+ ...args.slice(1, args.length),
24
+ ]);
25
+ };
26
+ }
27
+
28
+ return Reflect.get(target, prop, receiver);
29
+ },
30
+ });
31
+ }
@@ -23,6 +23,7 @@ export { removeQueries } from './removeQueries.js';
23
23
  export { refetchQueries } from './refetchQueries.js';
24
24
  export { isFetching } from './isFetching.js';
25
25
  export { isMutating } from './isMutating.js';
26
+ export { getMutationCache } from './getMutationCache.js';
26
27
  export { useIsFetching } from './useIsFetching.js';
27
28
  export { fetchQuery } from './fetchQuery.js';
28
29
  export { prefetchQuery } from './prefetchQuery.js';
@@ -3,9 +3,9 @@ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
3
3
  import type { OperationSchema, RequestFn } from './requestFn.js';
4
4
  import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
5
5
  import { composeQueryKey } from './composeQueryKey.js';
6
+ import { prepareRequestFnParameters } from './prepareRequestFnParameters.js';
6
7
  import { requestFnResponseRejecter } from './requestFnResponseRejecter.js';
7
8
  import { requestFnResponseResolver } from './requestFnResponseResolver.js';
8
- import { shelfMerge } from './shelfMerge.js';
9
9
 
10
10
  /**
11
11
  * Calls a query client fetch method with parameters and options,
@@ -50,11 +50,16 @@ export function callQueryClientMethodWithQueryKey<
50
50
  (requestFn
51
51
  ? // @ts-expect-error - Too complex union to type
52
52
  function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
53
+ const { parameters, body } = prepareRequestFnParameters(
54
+ queryParams,
55
+ pageParam,
56
+ infinite
57
+ );
58
+
53
59
  return requestFn(schema, {
54
- parameters: infinite
55
- ? (shelfMerge(2, queryParams, pageParam) as never)
56
- : queryParams,
60
+ parameters: parameters as never,
57
61
  baseUrl,
62
+ body,
58
63
  signal,
59
64
  meta,
60
65
  }).then(requestFnResponseResolver, requestFnResponseRejecter);
@@ -13,6 +13,7 @@ export function composeMutationFilters<Filters extends object>(
13
13
  ) {
14
14
  if (!filters) {
15
15
  return {
16
+ exact: false,
16
17
  mutationKey: composeMutationKey(schema, undefined),
17
18
  };
18
19
  }
@@ -38,7 +39,8 @@ export function composeMutationFilters<Filters extends object>(
38
39
  }
39
40
 
40
41
  return {
41
- ...filters,
42
+ exact: false,
42
43
  mutationKey: composeMutationKey(schema, undefined),
44
+ ...filters,
43
45
  };
44
46
  }
@@ -0,0 +1,70 @@
1
+ import { shelfMerge } from './shelfMerge.js';
2
+
3
+ /**
4
+ * Prepares parameters and body for requestFn calls, handling infinite query logic
5
+ * @param queryParams - The query parameters that may contain body
6
+ * @param pageParam - The page parameter for infinite queries
7
+ * @param infinite - Whether this is for an infinite query
8
+ * @returns Object with prepared parameters and body
9
+ */
10
+ export function prepareRequestFnParameters<TQueryParams>(
11
+ queryParams: TQueryParams,
12
+ pageParam: unknown,
13
+ infinite: boolean
14
+ ): {
15
+ parameters: TQueryParams extends { body: any }
16
+ ? Omit<TQueryParams, 'body'>
17
+ : TQueryParams;
18
+ body: BodyInit | undefined;
19
+ } {
20
+ const { body, ...parameters } = queryParams as {
21
+ body?: BodyInit;
22
+ } & TQueryParams;
23
+
24
+ if (!infinite) {
25
+ return {
26
+ parameters: parameters as never,
27
+ body: body as never,
28
+ };
29
+ }
30
+
31
+ // Handle infinite query parameters
32
+ const processedParameters = shelfMerge(
33
+ 2,
34
+ parameters,
35
+ omitBodyFromPageParam(pageParam)
36
+ ) as never;
37
+
38
+ const processedBody = mergeBodyWithPageParam(body, pageParam) as never;
39
+
40
+ return {
41
+ parameters: processedParameters,
42
+ body: processedBody,
43
+ };
44
+ }
45
+
46
+ /**
47
+ * Remove body from pageParam if it exists
48
+ */
49
+ function omitBodyFromPageParam(pageParam: unknown) {
50
+ if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {
51
+ const { body: _body, ...pageParameters } = pageParam;
52
+ return pageParameters;
53
+ }
54
+
55
+ return pageParam;
56
+ }
57
+
58
+ /**
59
+ * Merge body with pageParam.body if pageParam contains body
60
+ */
61
+ function mergeBodyWithPageParam(
62
+ body: BodyInit | undefined,
63
+ pageParam: unknown
64
+ ): BodyInit | undefined {
65
+ if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {
66
+ return shelfMerge(1, body, pageParam.body) as BodyInit;
67
+ }
68
+
69
+ return body;
70
+ }
@@ -6,9 +6,9 @@ import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
6
6
  import type { OperationSchema } from './requestFn.js';
7
7
  import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
8
8
  import { composeQueryKey } from './composeQueryKey.js';
9
+ import { prepareRequestFnParameters } from './prepareRequestFnParameters.js';
9
10
  import { requestFnResponseRejecter } from './requestFnResponseRejecter.js';
10
11
  import { requestFnResponseResolver } from './requestFnResponseResolver.js';
11
- import { shelfMerge } from './shelfMerge.js';
12
12
 
13
13
  /**
14
14
  * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
@@ -25,17 +25,15 @@ export function useComposeUseQueryOptions(
25
25
  const queryFn =
26
26
  options?.queryFn ??
27
27
  function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
28
- const { body, ...parameters } = queryParams as {
29
- body: BodyInit;
30
- parameters: Record<string, unknown>;
31
- };
28
+ const { parameters, body } = prepareRequestFnParameters(
29
+ queryParams,
30
+ pageParam,
31
+ infinite
32
+ );
32
33
 
33
34
  return qraftOptions
34
35
  .requestFn(schema, {
35
- // @ts-expect-error - Too complex to type
36
- parameters: infinite
37
- ? (shelfMerge(2, parameters, pageParam) as never)
38
- : parameters,
36
+ parameters: parameters as never,
39
37
  baseUrl: qraftOptions.baseUrl,
40
38
  body,
41
39
  signal,