@openapi-qraft/react 1.1.5 → 1.3.2
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.
- package/CHANGELOG.md +32 -0
- package/README.md +142 -46
- package/dist/QraftContext.d.ts +14 -5
- package/dist/QraftContext.d.ts.map +1 -1
- package/dist/QraftContext.js.map +1 -1
- package/dist/ServiceOperation.d.ts +112 -3
- package/dist/ServiceOperation.d.ts.map +1 -1
- package/dist/callbacks/cancelQueries.d.ts +2 -2
- package/dist/callbacks/cancelQueries.d.ts.map +1 -1
- package/dist/callbacks/cancelQueries.js.map +1 -1
- package/dist/callbacks/fetchInfiniteQuery.d.ts +7 -0
- package/dist/callbacks/fetchInfiniteQuery.d.ts.map +1 -0
- package/dist/callbacks/fetchInfiniteQuery.js +5 -0
- package/dist/callbacks/fetchInfiniteQuery.js.map +1 -0
- package/dist/callbacks/fetchQuery.d.ts +7 -0
- package/dist/callbacks/fetchQuery.d.ts.map +1 -0
- package/dist/callbacks/fetchQuery.js +5 -0
- package/dist/callbacks/fetchQuery.js.map +1 -0
- package/dist/callbacks/getInfiniteQueryData.d.ts +4 -4
- package/dist/callbacks/getInfiniteQueryData.d.ts.map +1 -1
- package/dist/callbacks/getInfiniteQueryData.js +3 -6
- package/dist/callbacks/getInfiniteQueryData.js.map +1 -1
- package/dist/callbacks/getInfiniteQueryKey.d.ts +2 -2
- package/dist/callbacks/getInfiniteQueryKey.d.ts.map +1 -1
- package/dist/callbacks/getInfiniteQueryKey.js.map +1 -1
- package/dist/callbacks/getMutationKey.d.ts +2 -2
- package/dist/callbacks/getMutationKey.d.ts.map +1 -1
- package/dist/callbacks/getMutationKey.js.map +1 -1
- package/dist/callbacks/getQueryData.d.ts +3 -3
- package/dist/callbacks/getQueryData.d.ts.map +1 -1
- package/dist/callbacks/getQueryData.js +3 -4
- package/dist/callbacks/getQueryData.js.map +1 -1
- package/dist/callbacks/getQueryKey.d.ts +2 -2
- package/dist/callbacks/getQueryKey.d.ts.map +1 -1
- package/dist/callbacks/getQueryKey.js.map +1 -1
- package/dist/callbacks/invalidateQueries.d.ts +2 -2
- package/dist/callbacks/invalidateQueries.d.ts.map +1 -1
- package/dist/callbacks/invalidateQueries.js.map +1 -1
- package/dist/callbacks/isFetching.d.ts +2 -2
- package/dist/callbacks/isFetching.d.ts.map +1 -1
- package/dist/callbacks/isFetching.js.map +1 -1
- package/dist/callbacks/mutationFn.d.ts +2 -2
- package/dist/callbacks/mutationFn.d.ts.map +1 -1
- package/dist/callbacks/mutationFn.js.map +1 -1
- package/dist/callbacks/prefetchInfiniteQuery.d.ts +7 -0
- package/dist/callbacks/prefetchInfiniteQuery.d.ts.map +1 -0
- package/dist/callbacks/prefetchInfiniteQuery.js +5 -0
- package/dist/callbacks/prefetchInfiniteQuery.js.map +1 -0
- package/dist/callbacks/prefetchQuery.d.ts +7 -0
- package/dist/callbacks/prefetchQuery.d.ts.map +1 -0
- package/dist/callbacks/prefetchQuery.js +5 -0
- package/dist/callbacks/prefetchQuery.js.map +1 -0
- package/dist/callbacks/queryFn.js.map +1 -1
- package/dist/callbacks/refetchQueries.d.ts +3 -3
- package/dist/callbacks/refetchQueries.d.ts.map +1 -1
- package/dist/callbacks/refetchQueries.js.map +1 -1
- package/dist/callbacks/resetQueries.d.ts +2 -2
- package/dist/callbacks/resetQueries.d.ts.map +1 -1
- package/dist/callbacks/resetQueries.js.map +1 -1
- package/dist/callbacks/setInfiniteQueryData.d.ts +2 -2
- package/dist/callbacks/setInfiniteQueryData.d.ts.map +1 -1
- package/dist/callbacks/setInfiniteQueryData.js +2 -6
- package/dist/callbacks/setInfiniteQueryData.js.map +1 -1
- package/dist/callbacks/setQueryData.d.ts +3 -3
- package/dist/callbacks/setQueryData.d.ts.map +1 -1
- package/dist/callbacks/setQueryData.js +3 -7
- package/dist/callbacks/setQueryData.js.map +1 -1
- package/dist/callbacks/useInfiniteQuery.d.ts +4 -4
- package/dist/callbacks/useInfiniteQuery.d.ts.map +1 -1
- package/dist/callbacks/useInfiniteQuery.js +5 -24
- package/dist/callbacks/useInfiniteQuery.js.map +1 -1
- package/dist/callbacks/useIsFetching.d.ts +2 -2
- package/dist/callbacks/useIsFetching.d.ts.map +1 -1
- package/dist/callbacks/useIsFetching.js +3 -8
- package/dist/callbacks/useIsFetching.js.map +1 -1
- package/dist/callbacks/useMutation.d.ts +2 -2
- package/dist/callbacks/useMutation.d.ts.map +1 -1
- package/dist/callbacks/useMutation.js +11 -8
- package/dist/callbacks/useMutation.js.map +1 -1
- package/dist/callbacks/useMutationState.d.ts +2 -2
- package/dist/callbacks/useMutationState.d.ts.map +1 -1
- package/dist/callbacks/useMutationState.js +3 -7
- package/dist/callbacks/useMutationState.js.map +1 -1
- package/dist/callbacks/useQueries.d.ts +2 -2
- package/dist/callbacks/useQueries.d.ts.map +1 -1
- package/dist/callbacks/useQueries.js +9 -6
- package/dist/callbacks/useQueries.js.map +1 -1
- package/dist/callbacks/useQuery.d.ts +4 -4
- package/dist/callbacks/useQuery.d.ts.map +1 -1
- package/dist/callbacks/useQuery.js +5 -23
- package/dist/callbacks/useQuery.js.map +1 -1
- package/dist/callbacks/useSuspenseInfiniteQuery.d.ts +4 -4
- package/dist/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/callbacks/useSuspenseInfiniteQuery.js +5 -24
- package/dist/callbacks/useSuspenseInfiniteQuery.js.map +1 -1
- package/dist/callbacks/useSuspenseQueries.d.ts +2 -2
- package/dist/callbacks/useSuspenseQueries.d.ts.map +1 -1
- package/dist/callbacks/useSuspenseQueries.js +9 -6
- package/dist/callbacks/useSuspenseQueries.js.map +1 -1
- package/dist/callbacks/useSuspenseQuery.d.ts +4 -4
- package/dist/callbacks/useSuspenseQuery.d.ts.map +1 -1
- package/dist/callbacks/useSuspenseQuery.js +5 -23
- package/dist/callbacks/useSuspenseQuery.js.map +1 -1
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/callQueryClientFetchMethod.d.ts +20 -0
- package/dist/lib/callQueryClientFetchMethod.d.ts.map +1 -0
- package/dist/lib/callQueryClientFetchMethod.js +48 -0
- package/dist/lib/callQueryClientFetchMethod.js.map +1 -0
- package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts +2 -2
- package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts.map +1 -1
- package/dist/lib/callQueryClientMethodWithQueryFilters.js +5 -13
- package/dist/lib/callQueryClientMethodWithQueryFilters.js.map +1 -1
- package/dist/lib/callQueryClientMethodWithQueryKey.d.ts +11 -0
- package/dist/lib/callQueryClientMethodWithQueryKey.d.ts.map +1 -0
- package/dist/lib/callQueryClientMethodWithQueryKey.js +22 -0
- package/dist/lib/callQueryClientMethodWithQueryKey.js.map +1 -0
- package/dist/lib/composeInfiniteQueryKey.d.ts +3 -3
- package/dist/lib/composeInfiniteQueryKey.d.ts.map +1 -1
- package/dist/lib/composeMutationKey.d.ts +4 -4
- package/dist/lib/composeMutationKey.d.ts.map +1 -1
- package/dist/lib/composeMutationKey.js.map +1 -1
- package/dist/lib/composeQueryFilters.d.ts +3 -3
- package/dist/lib/composeQueryFilters.d.ts.map +1 -1
- package/dist/lib/composeQueryFilters.js.map +1 -1
- package/dist/lib/composeQueryKey.d.ts +3 -3
- package/dist/lib/composeQueryKey.d.ts.map +1 -1
- package/dist/lib/requestFn.d.ts +75 -0
- package/dist/lib/requestFn.d.ts.map +1 -0
- package/dist/lib/{request.js → requestFn.js} +40 -34
- package/dist/lib/requestFn.js.map +1 -0
- package/dist/lib/useComposeUseQueryOptions.d.ts +16 -0
- package/dist/lib/useComposeUseQueryOptions.d.ts.map +1 -0
- package/dist/lib/useComposeUseQueryOptions.js +40 -0
- package/dist/lib/useComposeUseQueryOptions.js.map +1 -0
- package/dist/lib/useQueryClient.d.ts +9 -0
- package/dist/lib/useQueryClient.d.ts.map +1 -0
- package/dist/lib/useQueryClient.js +15 -0
- package/dist/lib/useQueryClient.js.map +1 -0
- package/dist/qraftAPIClient.d.ts +7 -7
- package/dist/qraftAPIClient.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/QraftContext.ts +22 -10
- package/src/ServiceOperation.ts +261 -4
- package/src/callbacks/cancelQueries.ts +3 -3
- package/src/callbacks/fetchInfiniteQuery.ts +22 -0
- package/src/callbacks/fetchQuery.ts +20 -0
- package/src/callbacks/getInfiniteQueryData.ts +13 -16
- package/src/callbacks/getInfiniteQueryKey.ts +3 -3
- package/src/callbacks/getMutationKey.ts +3 -3
- package/src/callbacks/getQueryData.ts +12 -10
- package/src/callbacks/getQueryKey.ts +3 -3
- package/src/callbacks/invalidateQueries.ts +3 -3
- package/src/callbacks/isFetching.ts +3 -3
- package/src/callbacks/mutationFn.ts +3 -3
- package/src/callbacks/prefetchInfiniteQuery.ts +22 -0
- package/src/callbacks/prefetchQuery.ts +22 -0
- package/src/callbacks/queryFn.ts +2 -2
- package/src/callbacks/refetchQueries.ts +4 -4
- package/src/callbacks/resetQueries.ts +3 -3
- package/src/callbacks/setInfiniteQueryData.ts +11 -18
- package/src/callbacks/setQueryData.ts +16 -17
- package/src/callbacks/useInfiniteQuery.ts +8 -46
- package/src/callbacks/useIsFetching.ts +6 -20
- package/src/callbacks/useMutation.ts +13 -12
- package/src/callbacks/useMutationState.ts +5 -11
- package/src/callbacks/useQueries.ts +11 -10
- package/src/callbacks/useQuery.ts +8 -39
- package/src/callbacks/useSuspenseInfiniteQuery.ts +8 -42
- package/src/callbacks/useSuspenseQueries.ts +11 -10
- package/src/callbacks/useSuspenseQuery.ts +8 -43
- package/src/index.ts +12 -7
- package/src/lib/callQueryClientFetchMethod.ts +90 -0
- package/src/lib/callQueryClientMethodWithQueryFilters.ts +10 -23
- package/src/lib/callQueryClientMethodWithQueryKey.ts +46 -0
- package/src/lib/composeInfiniteQueryKey.ts +3 -3
- package/src/lib/composeMutationKey.ts +5 -8
- package/src/lib/composeQueryFilters.ts +2 -2
- package/src/lib/composeQueryKey.ts +3 -3
- package/src/lib/{request.ts → requestFn.ts} +143 -79
- package/src/lib/useComposeUseQueryOptions.ts +64 -0
- package/src/lib/useQueryClient.ts +26 -0
- package/src/qraftAPIClient.ts +8 -8
- package/dist/RequestClient.d.ts +0 -19
- package/dist/RequestClient.d.ts.map +0 -1
- package/dist/RequestClient.js +0 -2
- package/dist/RequestClient.js.map +0 -1
- package/dist/lib/request.d.ts +0 -32
- package/dist/lib/request.d.ts.map +0 -1
- package/dist/lib/request.js.map +0 -1
- package/src/RequestClient.ts +0 -32
|
@@ -4,23 +4,15 @@ import { composeQueryFilters } from './composeQueryFilters.js';
|
|
|
4
4
|
* and automatically composes the `QueryKey` based on the schema and parameters.
|
|
5
5
|
*/
|
|
6
6
|
export function callQueryClientMethodWithQueryFilters(queryFilterMethod, schema, args) {
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
: args.length === 2
|
|
10
|
-
? args[1]
|
|
11
|
-
: args.length === 3
|
|
12
|
-
? args[2]
|
|
13
|
-
: undefined);
|
|
14
|
-
const filters = composeQueryFilters(schema, args.length === 1 ? undefined : args[0]);
|
|
15
|
-
const options = args.length === 3 ? args[1] : undefined;
|
|
7
|
+
const filters = args[0];
|
|
8
|
+
const queryClient = args[args.length - 1];
|
|
16
9
|
if (!queryClient)
|
|
17
10
|
throw new Error('queryClient is required');
|
|
18
11
|
if (!queryClient[queryFilterMethod])
|
|
19
12
|
throw new Error(`queryClient is invalid, ${queryFilterMethod} method does not exist`);
|
|
20
|
-
if (options)
|
|
21
|
-
// @ts-expect-error
|
|
22
|
-
return queryClient[queryFilterMethod](filters, options);
|
|
23
13
|
// @ts-expect-error
|
|
24
|
-
return queryClient[queryFilterMethod](filters)
|
|
14
|
+
return queryClient[queryFilterMethod](composeQueryFilters(schema, filters),
|
|
15
|
+
// @ts-expect-error
|
|
16
|
+
...args.slice(1, -1));
|
|
25
17
|
}
|
|
26
18
|
//# sourceMappingURL=callQueryClientMethodWithQueryFilters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callQueryClientMethodWithQueryFilters.js","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryFilters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"callQueryClientMethodWithQueryFilters.js","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryFilters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CAGnD,iBAA2B,EAC3B,MAAuB,EACvB,IAA4E;IAE5E,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAA4B,CAAC;IAErE,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,wBAAwB,CACrE,CAAC;IAEJ,mBAAmB;IACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CACnC,mBAAmB,CAAC,MAAM,EAAE,OAAgB,CAAC;IAC7C,mBAAmB;IACnB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { QueryClient } from '@tanstack/query-core';
|
|
2
|
+
import type { OperationSchema } from './requestFn.js';
|
|
3
|
+
/**
|
|
4
|
+
* Calls a query client method with parameters and options,
|
|
5
|
+
* and automatically composes the `QueryKey` based on the schema and parameters.
|
|
6
|
+
*/
|
|
7
|
+
export declare function callQueryClientMethodWithQueryKey<QFMethod extends QueryKeyMethods>(queryFilterMethod: QFMethod, schema: OperationSchema, infinite: boolean, args: [...Parameters<(typeof QueryClient.prototype)[QFMethod]>, QueryClient]): ReturnType<(typeof QueryClient.prototype)[QFMethod]>;
|
|
8
|
+
type QueryKeyMethod<QFMethod extends keyof typeof QueryClient.prototype> = QFMethod;
|
|
9
|
+
type QueryKeyMethods = QueryKeyMethod<'setQueryData'> | QueryKeyMethod<'getQueryData'> | QueryKeyMethod<'getQueryState'> | QueryKeyMethod<'setQueryDefaults'> | QueryKeyMethod<'getQueryDefaults'>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=callQueryClientMethodWithQueryKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callQueryClientMethodWithQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,SAAS,eAAe,EAEhC,iBAAiB,EAAE,QAAQ,EAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAC3E,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAkBtD;AAED,KAAK,cAAc,CAAC,QAAQ,SAAS,MAAM,OAAO,WAAW,CAAC,SAAS,IACrE,QAAQ,CAAC;AAEX,KAAK,eAAe,GAChB,cAAc,CAAC,cAAc,CAAC,GAC9B,cAAc,CAAC,cAAc,CAAC,GAC9B,cAAc,CAAC,eAAe,CAAC,GAC/B,cAAc,CAAC,kBAAkB,CAAC,GAClC,cAAc,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
|
|
2
|
+
import { composeQueryKey } from './composeQueryKey.js';
|
|
3
|
+
/**
|
|
4
|
+
* Calls a query client method with parameters and options,
|
|
5
|
+
* and automatically composes the `QueryKey` based on the schema and parameters.
|
|
6
|
+
*/
|
|
7
|
+
export function callQueryClientMethodWithQueryKey(queryFilterMethod, schema, infinite, args) {
|
|
8
|
+
const parameters = args[0];
|
|
9
|
+
const queryClient = args[args.length - 1];
|
|
10
|
+
if (!queryClient)
|
|
11
|
+
throw new Error('queryClient is required');
|
|
12
|
+
if (!queryClient[queryFilterMethod])
|
|
13
|
+
throw new Error(`queryClient is invalid, ${queryFilterMethod} method does not exist`);
|
|
14
|
+
const queryKey = Array.isArray(parameters)
|
|
15
|
+
? parameters
|
|
16
|
+
: infinite
|
|
17
|
+
? composeInfiniteQueryKey(schema, parameters)
|
|
18
|
+
: composeQueryKey(schema, parameters);
|
|
19
|
+
// @ts-expect-error
|
|
20
|
+
return queryClient[queryFilterMethod](queryKey, ...args.slice(1, -1));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=callQueryClientMethodWithQueryKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callQueryClientMethodWithQueryKey.js","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryKey.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAG/C,iBAA2B,EAC3B,MAAuB,EACvB,QAAiB,EACjB,IAA4E;IAE5E,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAA4B,CAAC;IAErE,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,wBAAwB,CACrE,CAAC;IAEJ,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACxC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC;YAC7C,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1C,mBAAmB;IACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
3
|
-
export declare function composeInfiniteQueryKey<TSchema extends
|
|
1
|
+
import type { ServiceOperationInfiniteQueryKey } from '../ServiceOperation.js';
|
|
2
|
+
import type { OperationSchema } from './requestFn.js';
|
|
3
|
+
export declare function composeInfiniteQueryKey<TSchema extends OperationSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationInfiniteQueryKey<TSchema, TParams>;
|
|
4
4
|
//# sourceMappingURL=composeInfiniteQueryKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeInfiniteQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeInfiniteQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"composeInfiniteQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeInfiniteQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,eAAe,EAC/B,OAAO,EAEP,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAEpD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { ServiceOperationMutationKey } from '../ServiceOperation.js';
|
|
2
|
+
import type { OperationSchema } from './requestFn.js';
|
|
3
3
|
/**
|
|
4
4
|
* Omit `body` or `requestBody` from mutation parameters if exists
|
|
5
5
|
* and return the rest of the parameters
|
|
6
6
|
*/
|
|
7
|
-
export declare function composeMutationKey<TSchema extends
|
|
8
|
-
export declare function composeMutationKey<TSchema extends
|
|
7
|
+
export declare function composeMutationKey<TSchema extends OperationSchema, TParams = undefined>(schema: TSchema, parameters: undefined): ServiceOperationMutationKey<TSchema, undefined>;
|
|
8
|
+
export declare function composeMutationKey<TSchema extends OperationSchema, TParams>(schema: TSchema, parameters: TParams): ServiceOperationMutationKey<TSchema, TParams>;
|
|
9
9
|
export declare function omitMutationPayload<T>(params: T): {};
|
|
10
10
|
//# sourceMappingURL=composeMutationKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeMutationKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"composeMutationKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,eAAe,EAC/B,OAAO,GAAG,SAAS,EAEnB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,SAAS,GACpB,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACnD,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,eAAe,EAAE,OAAO,EACzE,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAClB,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAgBjD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAa/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeMutationKey.js","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"composeMutationKey.js","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,kBAAkB,CAGhC,MAAe,EAAE,UAA+B;IAChD,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9C,CAAC,CAAC;YACE;gBACE,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;YACD,mBAAmB,CAAC,UAAU,CAAC;SAChC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,MAAS;IAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE7C,IAAI,MAAM,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,MAG5C,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,MAAyC,CAAC;AACnD,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OperationSchema } from './requestFn.js';
|
|
2
2
|
/**
|
|
3
3
|
* Replaces the `parameters` field in the filters with a `queryKey` field based on the schema.
|
|
4
4
|
* If no filters are provided, a `queryKey` will be composed schema's base query key.
|
|
5
5
|
* @param schema
|
|
6
6
|
* @param filters
|
|
7
7
|
*/
|
|
8
|
-
export declare function composeQueryFilters<Filters extends object>(schema:
|
|
9
|
-
queryKey: import("../ServiceOperation.js").ServiceOperationQueryKey<
|
|
8
|
+
export declare function composeQueryFilters<Filters extends object>(schema: OperationSchema, filters: Filters | undefined): (Filters & Record<"queryKey", unknown>) | Omit<Filters & Record<"parameters", unknown>, "parameters"> | {
|
|
9
|
+
queryKey: import("../ServiceOperation.js").ServiceOperationQueryKey<OperationSchema, undefined>;
|
|
10
10
|
};
|
|
11
11
|
//# sourceMappingURL=composeQueryFilters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeQueryFilters.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"composeQueryFilters.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,EACxD,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,GAAG,SAAS;;EAgC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeQueryFilters.js","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"composeQueryFilters.js","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAuB,EACvB,OAA4B;IAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,wBAAwB,EAAE,GAAG,OAAO,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;YACtC,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC;SAC9C,CAAC,CAAC;QAEH,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
3
|
-
export declare function composeQueryKey<TSchema extends
|
|
1
|
+
import type { ServiceOperationQueryKey } from '../ServiceOperation.js';
|
|
2
|
+
import type { OperationSchema } from './requestFn.js';
|
|
3
|
+
export declare function composeQueryKey<TSchema extends OperationSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationQueryKey<TSchema, TParams>;
|
|
4
4
|
//# sourceMappingURL=composeQueryKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"composeQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,wBAAgB,eAAe,CAAC,OAAO,SAAS,eAAe,EAAE,OAAO,EACtE,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAE5C"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @throws {error: object|string, response: Response} if the request fails
|
|
3
|
+
*/
|
|
4
|
+
export declare function requestFn<T>(schema: OperationSchema, requestInfo: RequestFnInfo, options?: RequestFnOptions): Promise<T>;
|
|
5
|
+
/**
|
|
6
|
+
* @throws {error: object|string, response: Response} if the request fails
|
|
7
|
+
*/
|
|
8
|
+
export declare function baseRequestFn<T>(requestSchema: OperationSchema, requestInfo: RequestFnInfo, options: WithRequired<RequestFnOptions, 'urlSerializer' | 'bodySerializer'>): Promise<T>;
|
|
9
|
+
export declare function urlSerializer(schema: OperationSchema, info: RequestFnPayload): string;
|
|
10
|
+
export declare function bodySerializer(schema: OperationSchema, info: RequestFnPayload): string | Blob | FormData | undefined;
|
|
11
|
+
export type HeadersOptions = HeadersInit | Record<string, string | number | boolean | null | undefined>;
|
|
12
|
+
export interface OperationSchema {
|
|
13
|
+
/**
|
|
14
|
+
* Operation path
|
|
15
|
+
* @example /user/{id}
|
|
16
|
+
*/
|
|
17
|
+
readonly url: string;
|
|
18
|
+
/**
|
|
19
|
+
* Operation method
|
|
20
|
+
*/
|
|
21
|
+
readonly method: 'get' | 'put' | 'post' | 'patch' | 'delete' | 'options' | 'head' | 'trace';
|
|
22
|
+
/**
|
|
23
|
+
* Media type of the request body
|
|
24
|
+
* @example application/json
|
|
25
|
+
*/
|
|
26
|
+
readonly mediaType?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface RequestFnPayload {
|
|
29
|
+
/**
|
|
30
|
+
* Base URL to use for the request
|
|
31
|
+
*/
|
|
32
|
+
baseUrl: string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* OpenAPI parameters
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* { path: {id: 1}, query: {search: 'hello'} }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
readonly parameters?: {
|
|
41
|
+
readonly path?: Record<string, any>;
|
|
42
|
+
readonly cookie?: Record<string, any>;
|
|
43
|
+
readonly header?: Record<string, any>;
|
|
44
|
+
readonly query?: Record<string, any>;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Request body
|
|
48
|
+
* @example { name: 'John' }
|
|
49
|
+
*/
|
|
50
|
+
readonly body?: BodyInit | Record<string, unknown> | null;
|
|
51
|
+
/**
|
|
52
|
+
* Tanstack Query Meta
|
|
53
|
+
*/
|
|
54
|
+
meta?: Record<string, unknown>;
|
|
55
|
+
/** An AbortSignal to set request's signal. */
|
|
56
|
+
signal?: AbortSignal | null;
|
|
57
|
+
}
|
|
58
|
+
interface RequestFnInfo extends RequestFnPayload, Omit<RequestInit, 'headers' | 'method' | 'body' | 'signal'> {
|
|
59
|
+
/**
|
|
60
|
+
* Request headers
|
|
61
|
+
* @example { 'X-Auth': '123' }
|
|
62
|
+
*/
|
|
63
|
+
readonly headers?: HeadersOptions;
|
|
64
|
+
}
|
|
65
|
+
export interface RequestFnOptions {
|
|
66
|
+
urlSerializer?: typeof urlSerializer;
|
|
67
|
+
bodySerializer?: typeof bodySerializer;
|
|
68
|
+
fetch?: typeof fetch;
|
|
69
|
+
}
|
|
70
|
+
export type RequestFn<T> = typeof requestFn<T>;
|
|
71
|
+
type WithRequired<T, K extends keyof T> = T & {
|
|
72
|
+
[_ in K]: {};
|
|
73
|
+
};
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=requestFn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestFn.d.ts","sourceRoot":"","sources":["../../src/lib/requestFn.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,aAAa,EAC1B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,aAAa,EAAE,eAAe,EAC9B,WAAW,EAAE,aAAa,EAC1B,OAAO,EAAE,YAAY,CAAC,gBAAgB,EAAE,eAAe,GAAG,gBAAgB,CAAC,GAC1E,OAAO,CAAC,CAAC,CAAC,CAoCZ;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAkBR;AA6DD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,wCAwBvB;AA+ED,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,MAAM,EACX,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;IAEZ;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACtC,CAAC;IAEF;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE1D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,UAAU,aACR,SAAQ,gBAAgB,EACtB,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC7D;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;AAE/C,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG;KAC3C,CAAC,IAAI,CAAC,GAAG,EAAE;CACb,CAAC"}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @throws {error: object|string, response: Response} if the request fails
|
|
3
3
|
*/
|
|
4
|
-
export async function
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
body,
|
|
4
|
+
export async function requestFn(schema, requestInfo, options) {
|
|
5
|
+
return baseRequestFn(schema, requestInfo, {
|
|
6
|
+
urlSerializer,
|
|
7
|
+
bodySerializer,
|
|
8
|
+
...options,
|
|
10
9
|
});
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @throws {error: object|string, response: Response} if the request fails
|
|
13
|
+
*/
|
|
14
|
+
export async function baseRequestFn(requestSchema, requestInfo, options) {
|
|
15
|
+
const { parameters, headers, body, ...requestInfoRest } = requestInfo;
|
|
16
|
+
const requestBody = options.bodySerializer(requestSchema, requestInfo);
|
|
17
|
+
const baseFetch = options.fetch ?? fetch;
|
|
18
|
+
const response = await baseFetch(options.urlSerializer(requestSchema, requestInfo), {
|
|
19
|
+
method: requestSchema.method.toUpperCase(),
|
|
13
20
|
body: requestBody,
|
|
14
21
|
headers: mergeHeaders({
|
|
15
22
|
Accept: 'application/json',
|
|
16
|
-
'Content-Type': mediaType ?? getBodyContentType(body),
|
|
23
|
+
'Content-Type': requestSchema.mediaType ?? getBodyContentType(body),
|
|
17
24
|
}, headers, parameters?.header, requestBody instanceof FormData
|
|
18
25
|
? // remove `Content-Type` if serialized body is FormData; browser will correctly set Content-Type & boundary expression
|
|
19
26
|
{ 'Content-Type': null }
|
|
20
27
|
: undefined),
|
|
21
|
-
...
|
|
28
|
+
...requestInfoRest,
|
|
22
29
|
});
|
|
23
30
|
// clone response to allow multiple reads
|
|
24
31
|
const clonedResponse = response.clone();
|
|
@@ -27,17 +34,18 @@ export async function request(config, requestInit, { urlSerializer: urlSerialize
|
|
|
27
34
|
}
|
|
28
35
|
return (await getResponseBody(clonedResponse));
|
|
29
36
|
}
|
|
30
|
-
export function urlSerializer(
|
|
31
|
-
const path = url.replace(/{(.*?)}/g, (substring, group) => {
|
|
32
|
-
if (parameters?.path?.hasOwnProperty(group)) {
|
|
33
|
-
return encodeURI(String(parameters?.path[group]));
|
|
37
|
+
export function urlSerializer(schema, info) {
|
|
38
|
+
const path = schema.url.replace(/{(.*?)}/g, (substring, group) => {
|
|
39
|
+
if (info.parameters?.path?.hasOwnProperty(group)) {
|
|
40
|
+
return encodeURI(String(info.parameters?.path[group]));
|
|
34
41
|
}
|
|
35
42
|
return substring;
|
|
36
43
|
});
|
|
37
|
-
|
|
38
|
-
|
|
44
|
+
const baseUrl = info.baseUrl ?? '';
|
|
45
|
+
if (info.parameters?.query) {
|
|
46
|
+
return `${baseUrl}${path}${getQueryString(info.parameters.query)}`;
|
|
39
47
|
}
|
|
40
|
-
return `${
|
|
48
|
+
return `${baseUrl}${path}`;
|
|
41
49
|
}
|
|
42
50
|
function getQueryString(params) {
|
|
43
51
|
const qs = [];
|
|
@@ -89,22 +97,22 @@ function mergeHeaders(...allHeaders) {
|
|
|
89
97
|
}
|
|
90
98
|
return headers;
|
|
91
99
|
}
|
|
92
|
-
export function bodySerializer(
|
|
93
|
-
if (
|
|
100
|
+
export function bodySerializer(schema, info) {
|
|
101
|
+
if (info.body === undefined)
|
|
94
102
|
return;
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
if (schema.method === 'get' ||
|
|
104
|
+
schema.method === 'head' ||
|
|
105
|
+
schema.method === 'options')
|
|
98
106
|
return;
|
|
99
|
-
if (
|
|
100
|
-
return getRequestBodyFormData(
|
|
101
|
-
if (!
|
|
102
|
-
(typeof
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
return
|
|
107
|
+
if (schema.mediaType?.includes('/form-data'))
|
|
108
|
+
return getRequestBodyFormData(info);
|
|
109
|
+
if (!schema.mediaType?.includes('/json') &&
|
|
110
|
+
(typeof info.body === 'string' ||
|
|
111
|
+
info.body instanceof Blob ||
|
|
112
|
+
info.body instanceof FormData)) {
|
|
113
|
+
return info.body;
|
|
106
114
|
}
|
|
107
|
-
return JSON.stringify(
|
|
115
|
+
return JSON.stringify(info.body);
|
|
108
116
|
}
|
|
109
117
|
function getRequestBodyFormData({ body, }) {
|
|
110
118
|
if (body instanceof FormData)
|
|
@@ -165,9 +173,7 @@ async function getResponseBody(response) {
|
|
|
165
173
|
return response.json();
|
|
166
174
|
const errorFallbackResponse = response.clone(); // clone to allow multiple reads
|
|
167
175
|
return response.json().catch(() => {
|
|
168
|
-
if (
|
|
169
|
-
typeof process.env !== 'undefined' &&
|
|
170
|
-
process.env.NODE_ENV === 'development') {
|
|
176
|
+
if (process.env.NODE_ENV === 'development') {
|
|
171
177
|
console.warn('Failed to parse response body as JSON. Falling back to .text()');
|
|
172
178
|
}
|
|
173
179
|
// falling back to .text() when necessary for error messages
|
|
@@ -176,4 +182,4 @@ async function getResponseBody(response) {
|
|
|
176
182
|
}
|
|
177
183
|
return response.text();
|
|
178
184
|
}
|
|
179
|
-
//# sourceMappingURL=
|
|
185
|
+
//# sourceMappingURL=requestFn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestFn.js","sourceRoot":"","sources":["../../src/lib/requestFn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { QueryClient } from '@tanstack/query-core';
|
|
2
|
+
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
3
|
+
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
4
|
+
import type { OperationSchema } from './requestFn.js';
|
|
5
|
+
/**
|
|
6
|
+
* Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare function useComposeUseQueryOptions(qraftOptions: QraftClientOptions | undefined, schema: OperationSchema, args: UseQueryOptionsArgs, infinite: boolean): never;
|
|
10
|
+
type UseQueryOptionsArgs = [
|
|
11
|
+
parameters: unknown,
|
|
12
|
+
options?: UseQueryOptions,
|
|
13
|
+
queryClient?: QueryClient
|
|
14
|
+
];
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=useComposeUseQueryOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useComposeUseQueryOptions.d.ts","sourceRoot":"","sources":["../../src/lib/useComposeUseQueryOptions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { QraftContext } from '../QraftContext.js';
|
|
4
|
+
import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
|
|
5
|
+
import { composeQueryKey } from './composeQueryKey.js';
|
|
6
|
+
import { shelfMerge } from './shelfMerge.js';
|
|
7
|
+
import { useQueryClient } from './useQueryClient.js';
|
|
8
|
+
/**
|
|
9
|
+
* Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export function useComposeUseQueryOptions(qraftOptions, schema, args, infinite) {
|
|
13
|
+
const [parameters, options, queryClient] = args;
|
|
14
|
+
const contextValue = useContext(qraftOptions?.context ?? QraftContext);
|
|
15
|
+
if (!contextValue?.requestFn)
|
|
16
|
+
throw new Error(`QraftContext.requestFn not found`);
|
|
17
|
+
const queryFn = options?.queryFn ??
|
|
18
|
+
// @ts-expect-error
|
|
19
|
+
function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
|
|
20
|
+
return contextValue.requestFn(schema, {
|
|
21
|
+
// @ts-expect-error
|
|
22
|
+
parameters: infinite
|
|
23
|
+
? shelfMerge(2, queryParams, pageParam)
|
|
24
|
+
: queryParams,
|
|
25
|
+
baseUrl: contextValue.baseUrl,
|
|
26
|
+
signal,
|
|
27
|
+
meta,
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
const queryKey = Array.isArray(parameters)
|
|
31
|
+
? parameters
|
|
32
|
+
: infinite
|
|
33
|
+
? composeInfiniteQueryKey(schema, parameters)
|
|
34
|
+
: composeQueryKey(schema, parameters);
|
|
35
|
+
return [
|
|
36
|
+
{ ...options, queryFn, queryKey },
|
|
37
|
+
useQueryClient(qraftOptions, queryClient),
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=useComposeUseQueryOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useComposeUseQueryOptions.js","sourceRoot":"","sources":["../../src/lib/useComposeUseQueryOptions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAMnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAA4C,EAC5C,MAAuB,EACvB,IAAyB,EACzB,QAAiB;IAEjB,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IAEhD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC,CAAC;IACvE,IAAI,CAAC,YAAY,EAAE,SAAS;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAEtD,MAAM,OAAO,GACX,OAAO,EAAE,OAAO;QAChB,mBAAmB;QACnB,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9D,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE;gBACpC,mBAAmB;gBACnB,UAAU,EAAE,QAAQ;oBAClB,CAAC,CAAE,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAW;oBAClD,CAAC,CAAC,WAAW;gBACf,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,MAAM;gBACN,IAAI;aACL,CAAC,CAAC;QACL,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACxC,CAAC,CAAE,UAAiE;QACpE,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC;YAC7C,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1C,OAAO;QACL,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE;QACjC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC;KACjC,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get the QueryClient from the QraftContext or the provided QueryClient argument.
|
|
5
|
+
* @param qraftOptions if `queryClient` is not provided, will be taken from context
|
|
6
|
+
* @param queryClient If not provided, will be taken this instance
|
|
7
|
+
*/
|
|
8
|
+
export declare function useQueryClient(qraftOptions: QraftClientOptions | undefined, queryClient: QueryClient | undefined): QueryClient;
|
|
9
|
+
//# sourceMappingURL=useQueryClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useQueryClient.d.ts","sourceRoot":"","sources":["../../src/lib/useQueryClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EAEZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,WAAW,EAAE,WAAW,GAAG,SAAS,eAMrC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { useQueryClient as useQueryClientTanstack, } from '@tanstack/react-query';
|
|
4
|
+
import { QraftContext } from '../QraftContext.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get the QueryClient from the QraftContext or the provided QueryClient argument.
|
|
7
|
+
* @param qraftOptions if `queryClient` is not provided, will be taken from context
|
|
8
|
+
* @param queryClient If not provided, will be taken this instance
|
|
9
|
+
*/
|
|
10
|
+
export function useQueryClient(qraftOptions, queryClient) {
|
|
11
|
+
const queryClientByContext = useContext(qraftOptions?.context ?? QraftContext)
|
|
12
|
+
?.queryClient;
|
|
13
|
+
return useQueryClientTanstack(queryClient ?? queryClientByContext);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=useQueryClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useQueryClient.js","sourceRoot":"","sources":["../../src/lib/useQueryClient.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAEL,cAAc,IAAI,sBAAsB,GACzC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,YAA4C,EAC5C,WAAoC;IAEpC,MAAM,oBAAoB,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC;QAC5E,EAAE,WAAW,CAAC;IAEhB,OAAO,sBAAsB,CAAC,WAAW,IAAI,oBAAoB,CAAC,CAAC;AACrE,CAAC"}
|
package/dist/qraftAPIClient.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Context } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import type {
|
|
4
|
-
export
|
|
1
|
+
import type { Context } from 'react';
|
|
2
|
+
import type { OperationSchema } from './lib/requestFn.js';
|
|
3
|
+
import type { QraftContextValue } from './QraftContext.js';
|
|
4
|
+
export interface QraftClientOptions {
|
|
5
5
|
context?: Context<QraftContextValue>;
|
|
6
|
-
}
|
|
6
|
+
}
|
|
7
7
|
export declare const qraftAPIClient: <Services extends ServicesOutput<Services>, Callbacks extends ServicesCallbacks>(services: ServicesDeclaration<Services>, callbacks: Callbacks, options?: QraftClientOptions) => ServicesCallbacksFilter<Services, keyof Callbacks>;
|
|
8
8
|
type ServicesOutput<Services> = {
|
|
9
9
|
[service in keyof Services]: {
|
|
10
10
|
[method in keyof Services[service]]: {
|
|
11
|
-
schema:
|
|
11
|
+
schema: OperationSchema;
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
14
|
};
|
|
@@ -23,7 +23,7 @@ type ServicesCallbacks = Record<string, (...rest: any[]) => any>;
|
|
|
23
23
|
type ServicesCallbacksFilter<Services extends ServicesOutput<Services>, Callbacks> = Services extends {
|
|
24
24
|
[serviceName in keyof Services]: {
|
|
25
25
|
[method in keyof Services[serviceName]]: {
|
|
26
|
-
schema:
|
|
26
|
+
schema: OperationSchema;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
} ? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qraftAPIClient.d.ts","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"qraftAPIClient.d.ts","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,cAAc,4JAMf,kBAAkB,uDAgC7B,CAAC;AAeF,KAAK,cAAc,CAAC,QAAQ,IAAI;KAC7B,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YAAE,MAAM,EAAE,eAAe,CAAA;SAAE;KACjE;CACF,CAAC;AAEF,KAAK,mBAAmB,CAAC,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,IAAI;KACnE,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YACnC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC7C;KACF;CACF,CAAC;AAEF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEjE,KAAK,uBAAuB,CAC1B,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,EACzC,SAAS,IACP,QAAQ,SAAS;KAClB,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG;YAAE,MAAM,EAAE,eAAe,CAAA;SAAE;KACrE;CACF,GACG;KACG,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAC3C,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAC7B,UAAU,CACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EACnC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAC/B,CACF;KACF;CACF,GACD,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openapi-qraft/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "API 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": "rimraf dist/ && tsc --project tsconfig.build.json",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"type": "module",
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@openapi-qraft/cli": "~1.
|
|
17
|
+
"@openapi-qraft/cli": "~1.3.2",
|
|
18
18
|
"@openapi-qraft/openapi-typescript": "^1.0.0",
|
|
19
19
|
"@tanstack/react-query": "^5.17.3",
|
|
20
20
|
"@testing-library/jest-dom": "^5.17.0",
|
package/src/QraftContext.ts
CHANGED
|
@@ -4,15 +4,27 @@ import { createContext } from 'react';
|
|
|
4
4
|
|
|
5
5
|
import type { QueryClient } from '@tanstack/react-query';
|
|
6
6
|
|
|
7
|
-
import type {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
import type { OperationSchema, RequestFnPayload } from './lib/requestFn.js';
|
|
8
|
+
|
|
9
|
+
interface QraftContextValueBase {
|
|
10
|
+
/**
|
|
11
|
+
* The base URL to use for all requests.
|
|
12
|
+
* @example 'https://api.example.com'
|
|
13
|
+
*/
|
|
14
|
+
baseUrl?: string;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The `requestFn` will be invoked with every request.
|
|
18
|
+
*/
|
|
19
|
+
requestFn<T>(
|
|
20
|
+
requestSchema: OperationSchema,
|
|
21
|
+
requestInfo: RequestFnPayload
|
|
22
|
+
): Promise<T>;
|
|
23
|
+
|
|
24
|
+
/** The QueryClient to use in Hooks */
|
|
25
|
+
queryClient?: QueryClient;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export type QraftContextValue = QraftContextValueBase | undefined;
|
|
17
29
|
|
|
18
30
|
export const QraftContext = createContext<QraftContextValue>(undefined);
|