@openapi-qraft/react 1.1.5 → 1.2.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.
- package/CHANGELOG.md +6 -0
- package/README.md +41 -25
- package/dist/QraftContext.d.ts +16 -5
- package/dist/QraftContext.d.ts.map +1 -1
- package/dist/QraftContext.js.map +1 -1
- package/dist/RequestClient.d.ts +2 -18
- package/dist/RequestClient.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/getInfiniteQueryData.d.ts +2 -2
- package/dist/callbacks/getInfiniteQueryData.d.ts.map +1 -1
- 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 +2 -2
- package/dist/callbacks/getQueryData.d.ts.map +1 -1
- 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/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.map +1 -1
- package/dist/callbacks/setQueryData.d.ts +2 -2
- package/dist/callbacks/setQueryData.d.ts.map +1 -1
- package/dist/callbacks/setQueryData.js.map +1 -1
- package/dist/callbacks/useInfiniteQuery.d.ts +2 -2
- package/dist/callbacks/useInfiniteQuery.d.ts.map +1 -1
- package/dist/callbacks/useInfiniteQuery.js +7 -6
- 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 -5
- 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 +8 -7
- 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 +7 -6
- package/dist/callbacks/useQueries.js.map +1 -1
- package/dist/callbacks/useQuery.d.ts +3 -3
- package/dist/callbacks/useQuery.d.ts.map +1 -1
- package/dist/callbacks/useQuery.js +7 -6
- package/dist/callbacks/useQuery.js.map +1 -1
- package/dist/callbacks/useSuspenseInfiniteQuery.d.ts +2 -2
- package/dist/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/callbacks/useSuspenseInfiniteQuery.js +7 -6
- 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 +7 -6
- package/dist/callbacks/useSuspenseQueries.js.map +1 -1
- package/dist/callbacks/useSuspenseQuery.d.ts +2 -2
- package/dist/callbacks/useSuspenseQuery.d.ts.map +1 -1
- package/dist/callbacks/useSuspenseQuery.js +7 -6
- 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/callQueryClientMethodWithQueryFilters.d.ts +2 -2
- package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts.map +1 -1
- package/dist/lib/callQueryClientMethodWithQueryFilters.js.map +1 -1
- 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/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/composeQueryKey.js.map +1 -1
- package/dist/lib/request.d.ts +50 -17
- package/dist/lib/request.d.ts.map +1 -1
- package/dist/lib/request.js +42 -31
- package/dist/lib/request.js.map +1 -1
- 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 +24 -9
- package/src/RequestClient.ts +10 -31
- package/src/callbacks/cancelQueries.ts +3 -3
- package/src/callbacks/getInfiniteQueryData.ts +3 -3
- package/src/callbacks/getInfiniteQueryKey.ts +3 -3
- package/src/callbacks/getMutationKey.ts +3 -3
- package/src/callbacks/getQueryData.ts +7 -3
- package/src/callbacks/getQueryKey.ts +7 -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/refetchQueries.ts +4 -4
- package/src/callbacks/resetQueries.ts +3 -3
- package/src/callbacks/setInfiniteQueryData.ts +4 -4
- package/src/callbacks/setQueryData.ts +8 -4
- package/src/callbacks/useInfiniteQuery.ts +17 -15
- package/src/callbacks/useIsFetching.ts +6 -14
- package/src/callbacks/useMutation.ts +23 -17
- package/src/callbacks/useMutationState.ts +5 -11
- package/src/callbacks/useQueries.ts +20 -14
- package/src/callbacks/useQuery.ts +22 -17
- package/src/callbacks/useSuspenseInfiniteQuery.ts +17 -15
- package/src/callbacks/useSuspenseQueries.ts +16 -14
- package/src/callbacks/useSuspenseQuery.ts +17 -15
- package/src/index.ts +12 -7
- package/src/lib/callQueryClientMethodWithQueryFilters.ts +2 -2
- package/src/lib/composeInfiniteQueryKey.ts +3 -3
- package/src/lib/composeMutationKey.ts +5 -5
- package/src/lib/composeQueryFilters.ts +2 -2
- package/src/lib/composeQueryKey.ts +6 -3
- package/src/lib/request.ts +136 -74
- package/src/lib/useQueryClient.ts +26 -0
- package/src/qraftAPIClient.ts +8 -8
|
@@ -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,MAA8B,EAC9B,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 { OperationRequestSchema } from './request.js';
|
|
3
|
+
export declare function composeQueryKey<TSchema extends OperationRequestSchema, 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,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,wBAAgB,eAAe,CAC7B,OAAO,SAAS,sBAAsB,EACtC,OAAO,EAEP,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAE5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeQueryKey.js","sourceRoot":"","sources":["../../src/lib/composeQueryKey.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,
|
|
1
|
+
{"version":3,"file":"composeQueryKey.js","sourceRoot":"","sources":["../../src/lib/composeQueryKey.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAI7B,MAAe,EACf,UAA+B;IAE/B,OAAO,CAAC,MAAM,EAAE,UAAU,IAAK,EAAc,CAAC,CAAC;AACjD,CAAC"}
|
package/dist/lib/request.d.ts
CHANGED
|
@@ -1,32 +1,65 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @throws {error: object|string, response: Response} if the request fails
|
|
3
3
|
*/
|
|
4
|
-
export declare function request<T>(
|
|
4
|
+
export declare function request<T>(options: RequestOptions, schema: OperationRequestSchema, requestInfo: OperationRequestInfo): Promise<T>;
|
|
5
|
+
export interface RequestOptions {
|
|
5
6
|
baseUrl: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}): string | Blob | FormData | undefined;
|
|
7
|
+
urlSerializer?: URLSerializer;
|
|
8
|
+
bodySerializer?: BodySerializer;
|
|
9
|
+
}
|
|
10
|
+
type URLSerializer = typeof urlSerializer;
|
|
11
|
+
type BodySerializer = typeof bodySerializer;
|
|
12
|
+
/**
|
|
13
|
+
* @throws {error: object|string, response: Response} if the request fails
|
|
14
|
+
*/
|
|
15
|
+
export declare function baseRequest<T>(options: Required<RequestOptions>, schema: OperationRequestSchema, requestInfo: OperationRequestInfo, customFetch?: typeof fetch): Promise<T>;
|
|
16
|
+
export declare function urlSerializer(baseUrl: string, schema: OperationRequestSchema, info: OperationRequestInfo): string;
|
|
17
|
+
export declare function bodySerializer(schema: OperationRequestSchema, info: OperationRequestInfo): string | Blob | FormData | undefined;
|
|
18
18
|
export type HeadersOptions = HeadersInit | Record<string, string | number | boolean | null | undefined>;
|
|
19
|
-
export
|
|
20
|
-
|
|
19
|
+
export interface OperationRequestSchema {
|
|
20
|
+
/**
|
|
21
|
+
* Operation path
|
|
22
|
+
* @example /user/{id}
|
|
23
|
+
*/
|
|
21
24
|
readonly url: string;
|
|
25
|
+
/**
|
|
26
|
+
* Operation method
|
|
27
|
+
*/
|
|
28
|
+
readonly method: 'get' | 'put' | 'post' | 'patch' | 'delete' | 'options' | 'head' | 'trace';
|
|
29
|
+
/**
|
|
30
|
+
* Media type of the request body
|
|
31
|
+
* @example application/json
|
|
32
|
+
*/
|
|
33
|
+
readonly mediaType?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface OperationRequestInfo extends Omit<RequestInit, 'headers' | 'method' | 'body'> {
|
|
36
|
+
/**
|
|
37
|
+
* OpenAPI parameters
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* { path: {id: 1}, query: {search: 'hello'} }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
22
43
|
readonly parameters?: {
|
|
23
44
|
readonly path?: Record<string, any>;
|
|
24
45
|
readonly cookie?: Record<string, any>;
|
|
25
46
|
readonly header?: Record<string, any>;
|
|
26
47
|
readonly query?: Record<string, any>;
|
|
27
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* Request body
|
|
51
|
+
* @example { name: 'John' }
|
|
52
|
+
*/
|
|
28
53
|
readonly body?: BodyInit | Record<string, unknown> | null;
|
|
29
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Request headers
|
|
56
|
+
* @example { 'X-Auth': '123' }
|
|
57
|
+
*/
|
|
30
58
|
readonly headers?: HeadersOptions;
|
|
31
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Tanstack Query Meta
|
|
61
|
+
*/
|
|
62
|
+
meta?: Record<string, unknown>;
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
32
65
|
//# sourceMappingURL=request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,sBAAsB,EAC9B,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,KAAK,aAAa,GAAG,OAAO,aAAa,CAAC;AAC1C,KAAK,cAAc,GAAG,OAAO,cAAc,CAAC;AAE5C;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,EACjC,MAAM,EAAE,sBAAsB,EAC9B,WAAW,EAAE,oBAAoB,EACjC,WAAW,eAAQ,GAClB,OAAO,CAAC,CAAC,CAAC,CAkCZ;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,sBAAsB,EAC9B,IAAI,EAAE,oBAAoB,GACzB,MAAM,CAgBR;AA6DD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,sBAAsB,EAC9B,IAAI,EAAE,oBAAoB,wCAwB3B;AAyFD,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEjE,MAAM,WAAW,sBAAsB;IACrC;;;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,oBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxD;;;;;;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;IACF;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAElC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC"}
|
package/dist/lib/request.js
CHANGED
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @throws {error: object|string, response: Response} if the request fails
|
|
3
3
|
*/
|
|
4
|
-
export async function request(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
export async function request(options, schema, requestInfo) {
|
|
5
|
+
return baseRequest(isRequiredRequestOptions(options)
|
|
6
|
+
? options
|
|
7
|
+
: {
|
|
8
|
+
urlSerializer,
|
|
9
|
+
bodySerializer,
|
|
10
|
+
...options,
|
|
11
|
+
}, schema, requestInfo);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @throws {error: object|string, response: Response} if the request fails
|
|
15
|
+
*/
|
|
16
|
+
export async function baseRequest(options, schema, requestInfo, customFetch = fetch) {
|
|
17
|
+
const { parameters, headers, body, ...requestInfoRest } = requestInfo;
|
|
18
|
+
const requestBody = options.bodySerializer(schema, requestInfo);
|
|
19
|
+
const response = await customFetch(options.urlSerializer(options.baseUrl, schema, requestInfo), {
|
|
20
|
+
method: schema.method.toUpperCase(),
|
|
13
21
|
body: requestBody,
|
|
14
22
|
headers: mergeHeaders({
|
|
15
23
|
Accept: 'application/json',
|
|
16
|
-
'Content-Type': mediaType ?? getBodyContentType(body),
|
|
24
|
+
'Content-Type': schema.mediaType ?? getBodyContentType(body),
|
|
17
25
|
}, headers, parameters?.header, requestBody instanceof FormData
|
|
18
26
|
? // remove `Content-Type` if serialized body is FormData; browser will correctly set Content-Type & boundary expression
|
|
19
27
|
{ 'Content-Type': null }
|
|
20
28
|
: undefined),
|
|
21
|
-
...
|
|
29
|
+
...requestInfoRest,
|
|
22
30
|
});
|
|
23
31
|
// clone response to allow multiple reads
|
|
24
32
|
const clonedResponse = response.clone();
|
|
@@ -27,17 +35,17 @@ export async function request(config, requestInit, { urlSerializer: urlSerialize
|
|
|
27
35
|
}
|
|
28
36
|
return (await getResponseBody(clonedResponse));
|
|
29
37
|
}
|
|
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]));
|
|
38
|
+
export function urlSerializer(baseUrl, schema, info) {
|
|
39
|
+
const path = schema.url.replace(/{(.*?)}/g, (substring, group) => {
|
|
40
|
+
if (info.parameters?.path?.hasOwnProperty(group)) {
|
|
41
|
+
return encodeURI(String(info.parameters?.path[group]));
|
|
34
42
|
}
|
|
35
43
|
return substring;
|
|
36
44
|
});
|
|
37
|
-
if (parameters?.query) {
|
|
38
|
-
return `${
|
|
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)
|
|
@@ -176,4 +184,7 @@ async function getResponseBody(response) {
|
|
|
176
184
|
}
|
|
177
185
|
return response.text();
|
|
178
186
|
}
|
|
187
|
+
function isRequiredRequestOptions(options) {
|
|
188
|
+
return Boolean(options.urlSerializer && options.bodySerializer);
|
|
189
|
+
}
|
|
179
190
|
//# sourceMappingURL=request.js.map
|
package/dist/lib/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 { OperationRequestSchema } from './lib/request.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: OperationRequestSchema;
|
|
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: OperationRequestSchema;
|
|
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,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,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,sBAAsB,CAAA;SAAE;KACxE;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,sBAAsB,CAAA;SAAE;KAC5E;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.2.0",
|
|
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.2.0",
|
|
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,30 @@ import { createContext } from 'react';
|
|
|
4
4
|
|
|
5
5
|
import type { QueryClient } from '@tanstack/react-query';
|
|
6
6
|
|
|
7
|
-
import type {
|
|
7
|
+
import type {
|
|
8
|
+
OperationRequestInfo,
|
|
9
|
+
OperationRequestSchema,
|
|
10
|
+
} from './lib/request.js';
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
interface QraftContextValueBase {
|
|
13
|
+
/** The QueryClient to use in Hooks */
|
|
14
|
+
queryClient?: QueryClient;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The request client to use for making requests. Will be invoked with every request.
|
|
18
|
+
*/
|
|
19
|
+
request<T>(
|
|
20
|
+
options: { baseUrl: string },
|
|
21
|
+
schema: OperationRequestSchema,
|
|
22
|
+
requestInfo: OperationRequestInfo
|
|
23
|
+
): Promise<T>;
|
|
24
|
+
/**
|
|
25
|
+
* The base URL to use for all requests.
|
|
26
|
+
* @example 'https://api.example.com'
|
|
27
|
+
*/
|
|
28
|
+
baseUrl: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type QraftContextValue = QraftContextValueBase | undefined;
|
|
17
32
|
|
|
18
33
|
export const QraftContext = createContext<QraftContextValue>(undefined);
|
package/src/RequestClient.ts
CHANGED
|
@@ -1,32 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export type RequestClientSchema = {
|
|
7
|
-
url: string;
|
|
8
|
-
method:
|
|
9
|
-
| 'get'
|
|
10
|
-
| 'put'
|
|
11
|
-
| 'post'
|
|
12
|
-
| 'patch'
|
|
13
|
-
| 'delete'
|
|
14
|
-
| 'options'
|
|
15
|
-
| 'head'
|
|
16
|
-
| 'trace';
|
|
17
|
-
mediaType?: string;
|
|
18
|
-
};
|
|
1
|
+
import type {
|
|
2
|
+
OperationRequestInfo,
|
|
3
|
+
OperationRequestSchema,
|
|
4
|
+
RequestOptions,
|
|
5
|
+
} from './lib/request.js';
|
|
19
6
|
|
|
20
|
-
export type
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export type RequestClientParams = {
|
|
28
|
-
header?: Record<string, any>;
|
|
29
|
-
path?: Record<string, any>;
|
|
30
|
-
query?: Record<string, any>;
|
|
31
|
-
cookie?: Record<string, any>;
|
|
32
|
-
};
|
|
7
|
+
export type RequestClient<T> = (
|
|
8
|
+
options: RequestOptions,
|
|
9
|
+
requestSchema: OperationRequestSchema,
|
|
10
|
+
requestInfo: OperationRequestInfo
|
|
11
|
+
) => Promise<T>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { callQueryClientMethodWithQueryFilters } from '../lib/callQueryClientMethodWithQueryFilters.js';
|
|
2
|
+
import type { OperationRequestSchema } from '../lib/request.js';
|
|
2
3
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
4
4
|
import { ServiceOperationCancelQueriesCallback } from '../ServiceOperation.js';
|
|
5
5
|
|
|
6
6
|
export function cancelQueries<TData>(
|
|
7
7
|
qraftOptions: QraftClientOptions | undefined,
|
|
8
|
-
schema:
|
|
8
|
+
schema: OperationRequestSchema,
|
|
9
9
|
args: Parameters<
|
|
10
10
|
ServiceOperationCancelQueriesCallback<
|
|
11
|
-
|
|
11
|
+
OperationRequestSchema,
|
|
12
12
|
unknown,
|
|
13
13
|
TData
|
|
14
14
|
>['cancelQueries']
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { InfiniteData } from '@tanstack/query-core';
|
|
2
2
|
|
|
3
3
|
import { composeInfiniteQueryKey } from '../lib/composeInfiniteQueryKey.js';
|
|
4
|
+
import type { OperationRequestSchema } from '../lib/request.js';
|
|
4
5
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
5
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
6
6
|
import {
|
|
7
7
|
ServiceOperationInfiniteQueryKey,
|
|
8
8
|
ServiceOperationQuery,
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
|
|
11
11
|
export function getInfiniteQueryData<TData>(
|
|
12
12
|
qraftOptions: QraftClientOptions | undefined,
|
|
13
|
-
schema:
|
|
13
|
+
schema: OperationRequestSchema,
|
|
14
14
|
args: Parameters<
|
|
15
15
|
ServiceOperationQuery<
|
|
16
|
-
|
|
16
|
+
OperationRequestSchema,
|
|
17
17
|
unknown,
|
|
18
18
|
TData
|
|
19
19
|
>['getInfiniteQueryData']
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { composeInfiniteQueryKey } from '../lib/composeInfiniteQueryKey.js';
|
|
2
|
+
import type { OperationRequestSchema } from '../lib/request.js';
|
|
2
3
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
4
4
|
import { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
5
5
|
|
|
6
6
|
export const getInfiniteQueryKey = (
|
|
7
7
|
qraftOptions: QraftClientOptions | undefined,
|
|
8
|
-
schema:
|
|
8
|
+
schema: OperationRequestSchema,
|
|
9
9
|
args: Parameters<
|
|
10
10
|
ServiceOperationQuery<
|
|
11
|
-
|
|
11
|
+
OperationRequestSchema,
|
|
12
12
|
unknown,
|
|
13
13
|
unknown
|
|
14
14
|
>['getInfiniteQueryKey']
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { composeMutationKey } from '../lib/composeMutationKey.js';
|
|
2
|
+
import type { OperationRequestSchema } from '../lib/request.js';
|
|
2
3
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
4
4
|
import { ServiceOperationMutation } from '../ServiceOperation.js';
|
|
5
5
|
|
|
6
6
|
export const getMutationKey = (
|
|
7
7
|
qraftOptions: QraftClientOptions | undefined,
|
|
8
|
-
schema:
|
|
8
|
+
schema: OperationRequestSchema,
|
|
9
9
|
args: Parameters<
|
|
10
10
|
ServiceOperationMutation<
|
|
11
|
-
|
|
11
|
+
OperationRequestSchema,
|
|
12
12
|
unknown,
|
|
13
13
|
unknown,
|
|
14
14
|
unknown
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { composeQueryKey } from '../lib/composeQueryKey.js';
|
|
2
|
+
import type { OperationRequestSchema } from '../lib/request.js';
|
|
2
3
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
4
4
|
import { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
5
5
|
|
|
6
6
|
export function getQueryData<TData>(
|
|
7
7
|
qraftOptions: QraftClientOptions | undefined,
|
|
8
|
-
schema:
|
|
8
|
+
schema: OperationRequestSchema,
|
|
9
9
|
args: Parameters<
|
|
10
|
-
ServiceOperationQuery<
|
|
10
|
+
ServiceOperationQuery<
|
|
11
|
+
OperationRequestSchema,
|
|
12
|
+
unknown,
|
|
13
|
+
TData
|
|
14
|
+
>['getQueryData']
|
|
11
15
|
>
|
|
12
16
|
): TData | undefined {
|
|
13
17
|
const [parameters, queryClient] = args;
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { composeQueryKey } from '../lib/composeQueryKey.js';
|
|
2
|
+
import type { OperationRequestSchema } from '../lib/request.js';
|
|
2
3
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
4
4
|
import { ServiceOperationQuery } from '../ServiceOperation.js';
|
|
5
5
|
|
|
6
6
|
export const getQueryKey = (
|
|
7
7
|
qraftOptions: QraftClientOptions | undefined,
|
|
8
|
-
schema:
|
|
8
|
+
schema: OperationRequestSchema,
|
|
9
9
|
args: Parameters<
|
|
10
|
-
ServiceOperationQuery<
|
|
10
|
+
ServiceOperationQuery<
|
|
11
|
+
OperationRequestSchema,
|
|
12
|
+
unknown,
|
|
13
|
+
unknown
|
|
14
|
+
>['getQueryKey']
|
|
11
15
|
>
|
|
12
16
|
) => {
|
|
13
17
|
return composeQueryKey(schema, args[0]);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { callQueryClientMethodWithQueryFilters } from '../lib/callQueryClientMethodWithQueryFilters.js';
|
|
2
|
+
import type { OperationRequestSchema } from '../lib/request.js';
|
|
2
3
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
4
4
|
import type { ServiceOperationInvalidateQueriesCallback } from '../ServiceOperation.js';
|
|
5
5
|
|
|
6
6
|
export function invalidateQueries<TData>(
|
|
7
7
|
qraftOptions: QraftClientOptions | undefined,
|
|
8
|
-
schema:
|
|
8
|
+
schema: OperationRequestSchema,
|
|
9
9
|
args: Parameters<
|
|
10
10
|
ServiceOperationInvalidateQueriesCallback<
|
|
11
|
-
|
|
11
|
+
OperationRequestSchema,
|
|
12
12
|
unknown,
|
|
13
13
|
TData
|
|
14
14
|
>['invalidateQueries']
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { callQueryClientMethodWithQueryFilters } from '../lib/callQueryClientMethodWithQueryFilters.js';
|
|
2
|
+
import type { OperationRequestSchema } from '../lib/request.js';
|
|
2
3
|
import type { QraftClientOptions } from '../qraftAPIClient.js';
|
|
3
|
-
import type { RequestClientSchema } from '../RequestClient.js';
|
|
4
4
|
import { ServiceOperationIsFetchingQueriesCallback } from '../ServiceOperation.js';
|
|
5
5
|
|
|
6
6
|
export function isFetching<TData>(
|
|
7
7
|
qraftOptions: QraftClientOptions | undefined,
|
|
8
|
-
schema:
|
|
8
|
+
schema: OperationRequestSchema,
|
|
9
9
|
args: Parameters<
|
|
10
10
|
ServiceOperationIsFetchingQueriesCallback<
|
|
11
|
-
|
|
11
|
+
OperationRequestSchema,
|
|
12
12
|
unknown,
|
|
13
13
|
TData
|
|
14
14
|
>['isFetching']
|