@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
|
@@ -1,32 +1,25 @@
|
|
|
1
1
|
import { InfiniteData } from '@tanstack/query-core';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { callQueryClientMethodWithQueryKey } from '../lib/callQueryClientMethodWithQueryKey.js';
|
|
4
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
4
5
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
5
|
-
import type {
|
|
6
|
-
import type {
|
|
7
|
-
ServiceOperationInfiniteQueryKey,
|
|
8
|
-
ServiceOperationQuery,
|
|
9
|
-
} from '../ServiceOperation.js';
|
|
6
|
+
import type { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
10
7
|
|
|
11
8
|
export function setInfiniteQueryData<TData>(
|
|
12
9
|
qraftOptions: QraftClientOptions | undefined,
|
|
13
|
-
schema:
|
|
10
|
+
schema: OperationSchema,
|
|
14
11
|
args: Parameters<
|
|
15
12
|
ServiceOperationQuery<
|
|
16
|
-
|
|
13
|
+
OperationSchema,
|
|
17
14
|
unknown,
|
|
18
15
|
TData
|
|
19
16
|
>['setInfiniteQueryData']
|
|
20
17
|
>
|
|
21
18
|
): InfiniteData<TData> | undefined {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
? parameters
|
|
29
|
-
: composeInfiniteQueryKey(schema, parameters);
|
|
30
|
-
|
|
31
|
-
return queryClient.setQueryData(queryKey, updater as never, options);
|
|
19
|
+
return callQueryClientMethodWithQueryKey(
|
|
20
|
+
'setQueryData',
|
|
21
|
+
schema,
|
|
22
|
+
true,
|
|
23
|
+
args as never
|
|
24
|
+
) as never;
|
|
32
25
|
}
|
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { callQueryClientMethodWithQueryKey } from '../lib/callQueryClientMethodWithQueryKey.js';
|
|
2
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
2
3
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
-
import type {
|
|
4
|
-
import {
|
|
5
|
-
ServiceOperationQuery,
|
|
6
|
-
ServiceOperationQueryKey,
|
|
7
|
-
} from '../ServiceOperation.js';
|
|
4
|
+
import type { ServiceOperationSetQueryDataCallback } from '../ServiceOperation.js';
|
|
8
5
|
|
|
9
6
|
export function setQueryData<TData>(
|
|
10
|
-
|
|
11
|
-
schema:
|
|
7
|
+
_: QraftClientOptions | undefined,
|
|
8
|
+
schema: OperationSchema,
|
|
12
9
|
args: Parameters<
|
|
13
|
-
|
|
10
|
+
ServiceOperationSetQueryDataCallback<
|
|
11
|
+
OperationSchema,
|
|
12
|
+
unknown,
|
|
13
|
+
TData
|
|
14
|
+
>['setQueryData']
|
|
14
15
|
>
|
|
15
16
|
): TData | undefined {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return queryClient.setQueryData(queryKey, updater as never, options);
|
|
17
|
+
return callQueryClientMethodWithQueryKey(
|
|
18
|
+
'setQueryData',
|
|
19
|
+
schema,
|
|
20
|
+
false,
|
|
21
|
+
args as never
|
|
22
|
+
) as never;
|
|
24
23
|
}
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useContext } from 'react';
|
|
4
|
-
|
|
5
3
|
import type { DefaultError, InfiniteData } from '@tanstack/query-core';
|
|
6
4
|
import {
|
|
7
5
|
useInfiniteQuery as useInfiniteQueryBase,
|
|
8
|
-
UseInfiniteQueryResult,
|
|
9
|
-
useQueryClient,
|
|
6
|
+
type UseInfiniteQueryResult,
|
|
10
7
|
} from '@tanstack/react-query';
|
|
11
8
|
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
9
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
10
|
+
import { useComposeUseQueryOptions } from '../lib/useComposeUseQueryOptions.js';
|
|
14
11
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
15
|
-
import {
|
|
16
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
17
|
-
import {
|
|
18
|
-
ServiceOperationInfiniteQueryKey,
|
|
19
|
-
ServiceOperationQuery,
|
|
20
|
-
} from '../ServiceOperation.js';
|
|
12
|
+
import type { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
21
13
|
|
|
22
14
|
export const useInfiniteQuery: <
|
|
23
15
|
TQueryFnData,
|
|
@@ -25,43 +17,13 @@ export const useInfiniteQuery: <
|
|
|
25
17
|
TData = InfiniteData<TQueryFnData>,
|
|
26
18
|
>(
|
|
27
19
|
qraftOptions: QraftClientOptions | undefined,
|
|
28
|
-
schema:
|
|
20
|
+
schema: OperationSchema,
|
|
29
21
|
args: Parameters<
|
|
30
|
-
ServiceOperationQuery<
|
|
31
|
-
RequestClientSchema,
|
|
32
|
-
unknown,
|
|
33
|
-
unknown
|
|
34
|
-
>['useInfiniteQuery']
|
|
22
|
+
ServiceOperationQuery<OperationSchema, unknown, unknown>['useInfiniteQuery']
|
|
35
23
|
>
|
|
36
24
|
) => UseInfiniteQueryResult<TData, TError> = (qraftOptions, schema, args) => {
|
|
37
|
-
const [parameters, options, queryClientByArg] = args;
|
|
38
|
-
|
|
39
|
-
const { requestClient, queryClient: queryClientByContext } =
|
|
40
|
-
useContext(qraftOptions?.context ?? QraftContext) ?? {};
|
|
41
|
-
|
|
42
|
-
if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
|
|
43
|
-
|
|
44
|
-
const queryKey: ServiceOperationInfiniteQueryKey<
|
|
45
|
-
RequestClientSchema,
|
|
46
|
-
unknown
|
|
47
|
-
> = Array.isArray(parameters)
|
|
48
|
-
? (parameters as never)
|
|
49
|
-
: composeInfiniteQueryKey(schema, parameters);
|
|
50
|
-
|
|
51
25
|
return useInfiniteQueryBase(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
queryKey,
|
|
55
|
-
queryFn:
|
|
56
|
-
options?.queryFn ??
|
|
57
|
-
function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
|
|
58
|
-
return requestClient(schema, {
|
|
59
|
-
parameters: shelfMerge(2, queryParams, pageParam) as never,
|
|
60
|
-
signal,
|
|
61
|
-
meta,
|
|
62
|
-
});
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
useQueryClient(queryClientByArg ?? queryClientByContext)
|
|
26
|
+
// @ts-expect-error
|
|
27
|
+
...useComposeUseQueryOptions(qraftOptions, schema, args, true)
|
|
66
28
|
) as never;
|
|
67
29
|
};
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
useIsFetching as useIsFetchingTanstack,
|
|
7
|
-
useQueryClient,
|
|
8
|
-
} from '@tanstack/react-query';
|
|
3
|
+
import { useIsFetching as useIsFetchingTanstack } from '@tanstack/react-query';
|
|
9
4
|
|
|
10
5
|
import { composeQueryFilters } from '../lib/composeQueryFilters.js';
|
|
6
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
7
|
+
import { useQueryClient } from '../lib/useQueryClient.js';
|
|
11
8
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
12
|
-
import { QraftContext } from '../QraftContext.js';
|
|
13
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
14
9
|
import type { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
15
10
|
|
|
16
11
|
export const useIsFetching: <TVariables = unknown>(
|
|
17
12
|
qraftOptions: QraftClientOptions | undefined,
|
|
18
|
-
schema:
|
|
13
|
+
schema: OperationSchema,
|
|
19
14
|
args: Parameters<
|
|
20
15
|
ServiceOperationQuery<
|
|
21
|
-
|
|
16
|
+
OperationSchema,
|
|
22
17
|
object | undefined,
|
|
23
18
|
TVariables,
|
|
24
19
|
unknown
|
|
@@ -27,17 +22,8 @@ export const useIsFetching: <TVariables = unknown>(
|
|
|
27
22
|
) => number = (qraftOptions, schema, args) => {
|
|
28
23
|
const [filters, queryClientByArg] = args;
|
|
29
24
|
|
|
30
|
-
if (filters && 'parameters' in filters && 'mutationKey' in filters) {
|
|
31
|
-
throw new Error(
|
|
32
|
-
`'useMutationState': 'parameters' and 'mutationKey' cannot be used together`
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const { queryClient: queryClientByContext } =
|
|
37
|
-
useContext(qraftOptions?.context ?? QraftContext) ?? {};
|
|
38
|
-
|
|
39
25
|
return useIsFetchingTanstack(
|
|
40
26
|
composeQueryFilters(schema, filters) as never,
|
|
41
|
-
useQueryClient(queryClientByArg
|
|
27
|
+
useQueryClient(qraftOptions, queryClientByArg)
|
|
42
28
|
) as never;
|
|
43
29
|
};
|
|
@@ -6,13 +6,13 @@ import type { DefaultError } from '@tanstack/query-core';
|
|
|
6
6
|
import {
|
|
7
7
|
useMutation as useMutationBase,
|
|
8
8
|
UseMutationResult,
|
|
9
|
-
useQueryClient,
|
|
10
9
|
} from '@tanstack/react-query';
|
|
11
10
|
|
|
12
11
|
import { composeMutationKey } from '../lib/composeMutationKey.js';
|
|
12
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
13
|
+
import { useQueryClient } from '../lib/useQueryClient.js';
|
|
13
14
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
14
15
|
import { QraftContext } from '../QraftContext.js';
|
|
15
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
16
16
|
import {
|
|
17
17
|
ServiceOperationMutation,
|
|
18
18
|
ServiceOperationMutationKey,
|
|
@@ -25,10 +25,10 @@ export const useMutation: <
|
|
|
25
25
|
TContext = unknown,
|
|
26
26
|
>(
|
|
27
27
|
qraftOptions: QraftClientOptions | undefined,
|
|
28
|
-
schema:
|
|
28
|
+
schema: OperationSchema,
|
|
29
29
|
args: Parameters<
|
|
30
30
|
ServiceOperationMutation<
|
|
31
|
-
|
|
31
|
+
OperationSchema,
|
|
32
32
|
object | undefined,
|
|
33
33
|
TVariables,
|
|
34
34
|
TData
|
|
@@ -51,10 +51,9 @@ export const useMutation: <
|
|
|
51
51
|
`'useMutation': parameters and 'options.mutationKey' cannot be used together`
|
|
52
52
|
);
|
|
53
53
|
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
|
|
54
|
+
const contextValue = useContext(qraftOptions?.context ?? QraftContext);
|
|
55
|
+
if (!contextValue?.requestFn)
|
|
56
|
+
throw new Error(`QraftContext.request not found`);
|
|
58
57
|
|
|
59
58
|
const mutationKey =
|
|
60
59
|
options && 'mutationKey' in options
|
|
@@ -72,8 +71,9 @@ export const useMutation: <
|
|
|
72
71
|
options?.mutationFn ??
|
|
73
72
|
(parameters
|
|
74
73
|
? function (bodyPayload) {
|
|
75
|
-
return
|
|
74
|
+
return contextValue.requestFn(schema, {
|
|
76
75
|
parameters,
|
|
76
|
+
baseUrl: contextValue.baseUrl,
|
|
77
77
|
body: bodyPayload as never,
|
|
78
78
|
});
|
|
79
79
|
}
|
|
@@ -82,12 +82,13 @@ export const useMutation: <
|
|
|
82
82
|
body: unknown;
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
return
|
|
86
|
-
body,
|
|
85
|
+
return contextValue.requestFn(schema, {
|
|
87
86
|
parameters,
|
|
87
|
+
baseUrl: contextValue.baseUrl,
|
|
88
|
+
body,
|
|
88
89
|
} as never);
|
|
89
90
|
}),
|
|
90
91
|
},
|
|
91
|
-
useQueryClient(queryClientByArg
|
|
92
|
+
useQueryClient(qraftOptions, queryClientByArg)
|
|
92
93
|
) as never;
|
|
93
94
|
};
|
|
@@ -6,13 +6,12 @@ import type { DefaultError } from '@tanstack/query-core';
|
|
|
6
6
|
import {
|
|
7
7
|
UseMutationResult,
|
|
8
8
|
useMutationState as useMutationStateTanstack,
|
|
9
|
-
useQueryClient,
|
|
10
9
|
} from '@tanstack/react-query';
|
|
11
10
|
|
|
12
11
|
import { composeMutationKey } from '../lib/composeMutationKey.js';
|
|
12
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
13
|
+
import { useQueryClient } from '../lib/useQueryClient.js';
|
|
13
14
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
14
|
-
import { QraftContext } from '../QraftContext.js';
|
|
15
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
16
15
|
import { ServiceOperationMutation } from '../ServiceOperation.js';
|
|
17
16
|
|
|
18
17
|
export const useMutationState: <
|
|
@@ -22,10 +21,10 @@ export const useMutationState: <
|
|
|
22
21
|
TContext = unknown,
|
|
23
22
|
>(
|
|
24
23
|
qraftOptions: QraftClientOptions | undefined,
|
|
25
|
-
schema:
|
|
24
|
+
schema: OperationSchema,
|
|
26
25
|
args: Parameters<
|
|
27
26
|
ServiceOperationMutation<
|
|
28
|
-
|
|
27
|
+
OperationSchema,
|
|
29
28
|
object | undefined,
|
|
30
29
|
TVariables,
|
|
31
30
|
TData
|
|
@@ -48,11 +47,6 @@ export const useMutationState: <
|
|
|
48
47
|
);
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
const { requestClient, queryClient: queryClientByContext } =
|
|
52
|
-
useContext(qraftOptions?.context ?? QraftContext) ?? {};
|
|
53
|
-
|
|
54
|
-
if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
|
|
55
|
-
|
|
56
50
|
const filters = options?.filters;
|
|
57
51
|
|
|
58
52
|
return useMutationStateTanstack(
|
|
@@ -71,6 +65,6 @@ export const useMutationState: <
|
|
|
71
65
|
),
|
|
72
66
|
},
|
|
73
67
|
} as never,
|
|
74
|
-
useQueryClient(queryClientByArg
|
|
68
|
+
useQueryClient(qraftOptions, queryClientByArg)
|
|
75
69
|
) as never;
|
|
76
70
|
};
|
|
@@ -5,28 +5,27 @@ import { useContext } from 'react';
|
|
|
5
5
|
import {
|
|
6
6
|
QueriesResults,
|
|
7
7
|
useQueries as useQueriesTanstack,
|
|
8
|
-
useQueryClient,
|
|
9
8
|
} from '@tanstack/react-query';
|
|
10
9
|
|
|
11
10
|
import { composeQueryKey } from '../lib/composeQueryKey.js';
|
|
11
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
12
|
+
import { useQueryClient } from '../lib/useQueryClient.js';
|
|
12
13
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
13
14
|
import { QraftContext } from '../QraftContext.js';
|
|
14
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
15
15
|
import { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
16
16
|
|
|
17
17
|
export const useQueries: (
|
|
18
18
|
qraftOptions: QraftClientOptions | undefined,
|
|
19
|
-
schema:
|
|
19
|
+
schema: OperationSchema,
|
|
20
20
|
args: Parameters<
|
|
21
|
-
ServiceOperationQuery<
|
|
21
|
+
ServiceOperationQuery<OperationSchema, unknown, unknown>['useQueries']
|
|
22
22
|
>
|
|
23
23
|
) => QueriesResults<never> = (qraftOptions, schema, args) => {
|
|
24
24
|
const [options, queryClientByArg] = args;
|
|
25
25
|
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
|
|
26
|
+
const contextValue = useContext(qraftOptions?.context ?? QraftContext);
|
|
27
|
+
if (!contextValue?.requestFn)
|
|
28
|
+
throw new Error(`QraftContext.requestFn not found`);
|
|
30
29
|
|
|
31
30
|
return useQueriesTanstack(
|
|
32
31
|
{
|
|
@@ -41,6 +40,7 @@ export const useQueries: (
|
|
|
41
40
|
},
|
|
42
41
|
queryOptions
|
|
43
42
|
);
|
|
43
|
+
// @ts-expect-error
|
|
44
44
|
delete queryOptionsCopy.parameters;
|
|
45
45
|
return queryOptionsCopy;
|
|
46
46
|
})()
|
|
@@ -51,8 +51,9 @@ export const useQueries: (
|
|
|
51
51
|
queryFn:
|
|
52
52
|
optionsWithQueryKey.queryFn ??
|
|
53
53
|
function ({ queryKey: [, queryParams], signal, meta }) {
|
|
54
|
-
return
|
|
54
|
+
return contextValue.requestFn(schema, {
|
|
55
55
|
parameters: queryParams as never,
|
|
56
|
+
baseUrl: contextValue.baseUrl,
|
|
56
57
|
signal,
|
|
57
58
|
meta,
|
|
58
59
|
});
|
|
@@ -60,6 +61,6 @@ export const useQueries: (
|
|
|
60
61
|
};
|
|
61
62
|
}),
|
|
62
63
|
},
|
|
63
|
-
useQueryClient(queryClientByArg
|
|
64
|
+
useQueryClient(qraftOptions, queryClientByArg)
|
|
64
65
|
) as never;
|
|
65
66
|
};
|
|
@@ -1,56 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useContext } from 'react';
|
|
4
|
-
|
|
5
3
|
import type { DefaultError } from '@tanstack/query-core';
|
|
6
4
|
import {
|
|
7
5
|
useQuery as useQueryTanstack,
|
|
8
|
-
|
|
9
|
-
UseQueryResult,
|
|
6
|
+
type UseQueryResult,
|
|
10
7
|
} from '@tanstack/react-query';
|
|
11
8
|
|
|
12
|
-
import {
|
|
9
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
10
|
+
import { useComposeUseQueryOptions } from '../lib/useComposeUseQueryOptions.js';
|
|
13
11
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
14
|
-
import {
|
|
15
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
16
|
-
import {
|
|
17
|
-
ServiceOperationQuery,
|
|
18
|
-
ServiceOperationQueryKey,
|
|
19
|
-
} from '../ServiceOperation.js';
|
|
12
|
+
import type { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
20
13
|
|
|
21
14
|
export const useQuery: <TData = unknown, TError = DefaultError>(
|
|
22
15
|
qraftOptions: QraftClientOptions | undefined,
|
|
23
|
-
schema:
|
|
16
|
+
schema: OperationSchema,
|
|
24
17
|
args: Parameters<
|
|
25
|
-
ServiceOperationQuery<
|
|
18
|
+
ServiceOperationQuery<OperationSchema, unknown, unknown>['useQuery']
|
|
26
19
|
>
|
|
27
20
|
) => UseQueryResult<TData, TError> = (qraftOptions, schema, args) => {
|
|
28
|
-
const [parameters, options, queryClientByArg] = args;
|
|
29
|
-
|
|
30
|
-
const { requestClient, queryClient: queryClientByContext } =
|
|
31
|
-
useContext(qraftOptions?.context ?? QraftContext) ?? {};
|
|
32
|
-
|
|
33
|
-
if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
|
|
34
|
-
|
|
35
|
-
const queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown> =
|
|
36
|
-
Array.isArray(parameters)
|
|
37
|
-
? (parameters as ServiceOperationQueryKey<RequestClientSchema, unknown>)
|
|
38
|
-
: composeQueryKey(schema, parameters);
|
|
39
|
-
|
|
40
21
|
return useQueryTanstack(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
queryKey,
|
|
44
|
-
queryFn:
|
|
45
|
-
options?.queryFn ??
|
|
46
|
-
function ({ queryKey: [, queryParams], signal, meta }) {
|
|
47
|
-
return requestClient(schema, {
|
|
48
|
-
parameters: queryParams as never,
|
|
49
|
-
signal,
|
|
50
|
-
meta,
|
|
51
|
-
});
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
useQueryClient(queryClientByArg ?? queryClientByContext)
|
|
22
|
+
// @ts-expect-error
|
|
23
|
+
...useComposeUseQueryOptions(qraftOptions, schema, args, false)
|
|
55
24
|
) as never;
|
|
56
25
|
};
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useContext } from 'react';
|
|
4
|
-
|
|
5
3
|
import type { DefaultError, InfiniteData } from '@tanstack/query-core';
|
|
6
4
|
import {
|
|
7
|
-
useQueryClient,
|
|
8
5
|
useSuspenseInfiniteQuery as useSuspenseInfiniteQueryTanstack,
|
|
9
|
-
UseSuspenseInfiniteQueryResult,
|
|
6
|
+
type UseSuspenseInfiniteQueryResult,
|
|
10
7
|
} from '@tanstack/react-query';
|
|
11
8
|
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
9
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
10
|
+
import { useComposeUseQueryOptions } from '../lib/useComposeUseQueryOptions.js';
|
|
14
11
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
15
|
-
import {
|
|
16
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
17
|
-
import {
|
|
18
|
-
ServiceOperationInfiniteQueryKey,
|
|
19
|
-
ServiceOperationQuery,
|
|
20
|
-
} from '../ServiceOperation.js';
|
|
12
|
+
import type { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
21
13
|
|
|
22
14
|
export const useSuspenseInfiniteQuery: <
|
|
23
15
|
TQueryFnData,
|
|
@@ -25,10 +17,10 @@ export const useSuspenseInfiniteQuery: <
|
|
|
25
17
|
TData = InfiniteData<TQueryFnData>,
|
|
26
18
|
>(
|
|
27
19
|
qraftOptions: QraftClientOptions | undefined,
|
|
28
|
-
schema:
|
|
20
|
+
schema: OperationSchema,
|
|
29
21
|
args: Parameters<
|
|
30
22
|
ServiceOperationQuery<
|
|
31
|
-
|
|
23
|
+
OperationSchema,
|
|
32
24
|
unknown,
|
|
33
25
|
unknown
|
|
34
26
|
>['useSuspenseInfiniteQuery']
|
|
@@ -38,34 +30,8 @@ export const useSuspenseInfiniteQuery: <
|
|
|
38
30
|
schema,
|
|
39
31
|
args
|
|
40
32
|
) => {
|
|
41
|
-
const [parameters, options, queryClientByArg] = args;
|
|
42
|
-
|
|
43
|
-
const { requestClient, queryClient: queryClientByContext } =
|
|
44
|
-
useContext(qraftOptions?.context ?? QraftContext) ?? {};
|
|
45
|
-
|
|
46
|
-
if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
|
|
47
|
-
|
|
48
|
-
const queryKey: ServiceOperationInfiniteQueryKey<
|
|
49
|
-
RequestClientSchema,
|
|
50
|
-
unknown
|
|
51
|
-
> = Array.isArray(parameters)
|
|
52
|
-
? (parameters as never)
|
|
53
|
-
: composeInfiniteQueryKey(schema, parameters);
|
|
54
|
-
|
|
55
33
|
return useSuspenseInfiniteQueryTanstack(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
queryKey,
|
|
59
|
-
queryFn:
|
|
60
|
-
options?.queryFn ??
|
|
61
|
-
function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
|
|
62
|
-
return requestClient(schema, {
|
|
63
|
-
parameters: shelfMerge(2, queryParams, pageParam) as never,
|
|
64
|
-
signal,
|
|
65
|
-
meta,
|
|
66
|
-
});
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
useQueryClient(queryClientByArg ?? queryClientByContext)
|
|
34
|
+
// @ts-expect-error
|
|
35
|
+
...useComposeUseQueryOptions(qraftOptions, schema, args, true)
|
|
70
36
|
) as never;
|
|
71
37
|
};
|
|
@@ -4,22 +4,22 @@ import { useContext } from 'react';
|
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
6
|
SuspenseQueriesResults,
|
|
7
|
-
useQueryClient,
|
|
8
7
|
useSuspenseQueries as useSuspenseQueriesTanstack,
|
|
9
8
|
} from '@tanstack/react-query';
|
|
10
9
|
|
|
11
10
|
import { composeQueryKey } from '../lib/composeQueryKey.js';
|
|
11
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
12
|
+
import { useQueryClient } from '../lib/useQueryClient.js';
|
|
12
13
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
13
14
|
import { QraftContext } from '../QraftContext.js';
|
|
14
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
15
15
|
import { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
16
16
|
|
|
17
17
|
export const useSuspenseQueries: (
|
|
18
18
|
qraftOptions: QraftClientOptions | undefined,
|
|
19
|
-
schema:
|
|
19
|
+
schema: OperationSchema,
|
|
20
20
|
args: Parameters<
|
|
21
21
|
ServiceOperationQuery<
|
|
22
|
-
|
|
22
|
+
OperationSchema,
|
|
23
23
|
unknown,
|
|
24
24
|
unknown
|
|
25
25
|
>['useSuspenseQueries']
|
|
@@ -27,10 +27,9 @@ export const useSuspenseQueries: (
|
|
|
27
27
|
) => SuspenseQueriesResults<never> = (qraftOptions, schema, args) => {
|
|
28
28
|
const [options, queryClientByArg] = args;
|
|
29
29
|
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
|
|
30
|
+
const contextValue = useContext(qraftOptions?.context ?? QraftContext);
|
|
31
|
+
if (!contextValue?.requestFn)
|
|
32
|
+
throw new Error(`QraftContext.requestFn not found`);
|
|
34
33
|
|
|
35
34
|
return useSuspenseQueriesTanstack(
|
|
36
35
|
{
|
|
@@ -45,6 +44,7 @@ export const useSuspenseQueries: (
|
|
|
45
44
|
},
|
|
46
45
|
queryOptions
|
|
47
46
|
);
|
|
47
|
+
// @ts-expect-error
|
|
48
48
|
delete queryOptionsCopy.parameters;
|
|
49
49
|
return queryOptionsCopy;
|
|
50
50
|
})()
|
|
@@ -55,8 +55,9 @@ export const useSuspenseQueries: (
|
|
|
55
55
|
queryFn:
|
|
56
56
|
optionsWithQueryKey.queryFn ??
|
|
57
57
|
function ({ queryKey: [, queryParams], signal, meta }) {
|
|
58
|
-
return
|
|
58
|
+
return contextValue.requestFn(schema, {
|
|
59
59
|
parameters: queryParams as never,
|
|
60
|
+
baseUrl: contextValue.baseUrl,
|
|
60
61
|
signal,
|
|
61
62
|
meta,
|
|
62
63
|
});
|
|
@@ -64,6 +65,6 @@ export const useSuspenseQueries: (
|
|
|
64
65
|
};
|
|
65
66
|
}),
|
|
66
67
|
},
|
|
67
|
-
useQueryClient(queryClientByArg
|
|
68
|
+
useQueryClient(qraftOptions, queryClientByArg)
|
|
68
69
|
) as never;
|
|
69
70
|
};
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useContext } from 'react';
|
|
4
|
-
|
|
5
3
|
import type { DefaultError } from '@tanstack/query-core';
|
|
6
4
|
import {
|
|
7
|
-
|
|
8
|
-
UseQueryResult,
|
|
5
|
+
type UseQueryResult,
|
|
9
6
|
useSuspenseQuery as useSuspenseQueryTanstack,
|
|
10
7
|
} from '@tanstack/react-query';
|
|
11
8
|
|
|
12
|
-
import {
|
|
9
|
+
import type { OperationSchema } from '../lib/requestFn.js';
|
|
10
|
+
import { useComposeUseQueryOptions } from '../lib/useComposeUseQueryOptions.js';
|
|
13
11
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
14
|
-
import {
|
|
15
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
16
|
-
import {
|
|
17
|
-
ServiceOperationQuery,
|
|
18
|
-
ServiceOperationQueryKey,
|
|
19
|
-
} from '../ServiceOperation.js';
|
|
12
|
+
import type { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
20
13
|
|
|
21
14
|
export const useSuspenseQuery: <
|
|
22
15
|
TQueryFnData = unknown,
|
|
@@ -24,41 +17,13 @@ export const useSuspenseQuery: <
|
|
|
24
17
|
TData = TQueryFnData,
|
|
25
18
|
>(
|
|
26
19
|
qraftOptions: QraftClientOptions | undefined,
|
|
27
|
-
schema:
|
|
20
|
+
schema: OperationSchema,
|
|
28
21
|
args: Parameters<
|
|
29
|
-
ServiceOperationQuery<
|
|
30
|
-
RequestClientSchema,
|
|
31
|
-
unknown,
|
|
32
|
-
unknown
|
|
33
|
-
>['useSuspenseQuery']
|
|
22
|
+
ServiceOperationQuery<OperationSchema, unknown, unknown>['useSuspenseQuery']
|
|
34
23
|
>
|
|
35
24
|
) => UseQueryResult<TData, TError> = (qraftOptions, schema, args) => {
|
|
36
|
-
const [parameters, options, queryClientByArg] = args;
|
|
37
|
-
|
|
38
|
-
const { requestClient, queryClient: queryClientByContext } =
|
|
39
|
-
useContext(qraftOptions?.context ?? QraftContext) ?? {};
|
|
40
|
-
|
|
41
|
-
if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
|
|
42
|
-
|
|
43
|
-
const queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown> =
|
|
44
|
-
Array.isArray(parameters)
|
|
45
|
-
? (parameters as never)
|
|
46
|
-
: composeQueryKey(schema, parameters);
|
|
47
|
-
|
|
48
25
|
return useSuspenseQueryTanstack(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
queryKey,
|
|
52
|
-
queryFn:
|
|
53
|
-
options?.queryFn ??
|
|
54
|
-
function ({ queryKey: [, queryParams], signal, meta }) {
|
|
55
|
-
return requestClient(schema, {
|
|
56
|
-
parameters: queryParams as never,
|
|
57
|
-
signal,
|
|
58
|
-
meta,
|
|
59
|
-
});
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
useQueryClient(queryClientByArg ?? queryClientByContext)
|
|
26
|
+
// @ts-expect-error
|
|
27
|
+
...useComposeUseQueryOptions(qraftOptions, schema, args, false)
|
|
63
28
|
) as never;
|
|
64
29
|
};
|