@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.
Files changed (143) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +41 -25
  3. package/dist/QraftContext.d.ts +16 -5
  4. package/dist/QraftContext.d.ts.map +1 -1
  5. package/dist/QraftContext.js.map +1 -1
  6. package/dist/RequestClient.d.ts +2 -18
  7. package/dist/RequestClient.d.ts.map +1 -1
  8. package/dist/callbacks/cancelQueries.d.ts +2 -2
  9. package/dist/callbacks/cancelQueries.d.ts.map +1 -1
  10. package/dist/callbacks/cancelQueries.js.map +1 -1
  11. package/dist/callbacks/getInfiniteQueryData.d.ts +2 -2
  12. package/dist/callbacks/getInfiniteQueryData.d.ts.map +1 -1
  13. package/dist/callbacks/getInfiniteQueryData.js.map +1 -1
  14. package/dist/callbacks/getInfiniteQueryKey.d.ts +2 -2
  15. package/dist/callbacks/getInfiniteQueryKey.d.ts.map +1 -1
  16. package/dist/callbacks/getInfiniteQueryKey.js.map +1 -1
  17. package/dist/callbacks/getMutationKey.d.ts +2 -2
  18. package/dist/callbacks/getMutationKey.d.ts.map +1 -1
  19. package/dist/callbacks/getMutationKey.js.map +1 -1
  20. package/dist/callbacks/getQueryData.d.ts +2 -2
  21. package/dist/callbacks/getQueryData.d.ts.map +1 -1
  22. package/dist/callbacks/getQueryData.js.map +1 -1
  23. package/dist/callbacks/getQueryKey.d.ts +2 -2
  24. package/dist/callbacks/getQueryKey.d.ts.map +1 -1
  25. package/dist/callbacks/getQueryKey.js.map +1 -1
  26. package/dist/callbacks/invalidateQueries.d.ts +2 -2
  27. package/dist/callbacks/invalidateQueries.d.ts.map +1 -1
  28. package/dist/callbacks/invalidateQueries.js.map +1 -1
  29. package/dist/callbacks/isFetching.d.ts +2 -2
  30. package/dist/callbacks/isFetching.d.ts.map +1 -1
  31. package/dist/callbacks/isFetching.js.map +1 -1
  32. package/dist/callbacks/mutationFn.d.ts +2 -2
  33. package/dist/callbacks/mutationFn.d.ts.map +1 -1
  34. package/dist/callbacks/mutationFn.js.map +1 -1
  35. package/dist/callbacks/refetchQueries.d.ts +3 -3
  36. package/dist/callbacks/refetchQueries.d.ts.map +1 -1
  37. package/dist/callbacks/refetchQueries.js.map +1 -1
  38. package/dist/callbacks/resetQueries.d.ts +2 -2
  39. package/dist/callbacks/resetQueries.d.ts.map +1 -1
  40. package/dist/callbacks/resetQueries.js.map +1 -1
  41. package/dist/callbacks/setInfiniteQueryData.d.ts +2 -2
  42. package/dist/callbacks/setInfiniteQueryData.d.ts.map +1 -1
  43. package/dist/callbacks/setInfiniteQueryData.js.map +1 -1
  44. package/dist/callbacks/setQueryData.d.ts +2 -2
  45. package/dist/callbacks/setQueryData.d.ts.map +1 -1
  46. package/dist/callbacks/setQueryData.js.map +1 -1
  47. package/dist/callbacks/useInfiniteQuery.d.ts +2 -2
  48. package/dist/callbacks/useInfiniteQuery.d.ts.map +1 -1
  49. package/dist/callbacks/useInfiniteQuery.js +7 -6
  50. package/dist/callbacks/useInfiniteQuery.js.map +1 -1
  51. package/dist/callbacks/useIsFetching.d.ts +2 -2
  52. package/dist/callbacks/useIsFetching.d.ts.map +1 -1
  53. package/dist/callbacks/useIsFetching.js +3 -5
  54. package/dist/callbacks/useIsFetching.js.map +1 -1
  55. package/dist/callbacks/useMutation.d.ts +2 -2
  56. package/dist/callbacks/useMutation.d.ts.map +1 -1
  57. package/dist/callbacks/useMutation.js +8 -7
  58. package/dist/callbacks/useMutation.js.map +1 -1
  59. package/dist/callbacks/useMutationState.d.ts +2 -2
  60. package/dist/callbacks/useMutationState.d.ts.map +1 -1
  61. package/dist/callbacks/useMutationState.js +3 -7
  62. package/dist/callbacks/useMutationState.js.map +1 -1
  63. package/dist/callbacks/useQueries.d.ts +2 -2
  64. package/dist/callbacks/useQueries.d.ts.map +1 -1
  65. package/dist/callbacks/useQueries.js +7 -6
  66. package/dist/callbacks/useQueries.js.map +1 -1
  67. package/dist/callbacks/useQuery.d.ts +3 -3
  68. package/dist/callbacks/useQuery.d.ts.map +1 -1
  69. package/dist/callbacks/useQuery.js +7 -6
  70. package/dist/callbacks/useQuery.js.map +1 -1
  71. package/dist/callbacks/useSuspenseInfiniteQuery.d.ts +2 -2
  72. package/dist/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -1
  73. package/dist/callbacks/useSuspenseInfiniteQuery.js +7 -6
  74. package/dist/callbacks/useSuspenseInfiniteQuery.js.map +1 -1
  75. package/dist/callbacks/useSuspenseQueries.d.ts +2 -2
  76. package/dist/callbacks/useSuspenseQueries.d.ts.map +1 -1
  77. package/dist/callbacks/useSuspenseQueries.js +7 -6
  78. package/dist/callbacks/useSuspenseQueries.js.map +1 -1
  79. package/dist/callbacks/useSuspenseQuery.d.ts +2 -2
  80. package/dist/callbacks/useSuspenseQuery.d.ts.map +1 -1
  81. package/dist/callbacks/useSuspenseQuery.js +7 -6
  82. package/dist/callbacks/useSuspenseQuery.js.map +1 -1
  83. package/dist/index.d.ts +3 -7
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +1 -1
  86. package/dist/index.js.map +1 -1
  87. package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts +2 -2
  88. package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts.map +1 -1
  89. package/dist/lib/callQueryClientMethodWithQueryFilters.js.map +1 -1
  90. package/dist/lib/composeInfiniteQueryKey.d.ts +3 -3
  91. package/dist/lib/composeInfiniteQueryKey.d.ts.map +1 -1
  92. package/dist/lib/composeMutationKey.d.ts +4 -4
  93. package/dist/lib/composeMutationKey.d.ts.map +1 -1
  94. package/dist/lib/composeQueryFilters.d.ts +3 -3
  95. package/dist/lib/composeQueryFilters.d.ts.map +1 -1
  96. package/dist/lib/composeQueryFilters.js.map +1 -1
  97. package/dist/lib/composeQueryKey.d.ts +3 -3
  98. package/dist/lib/composeQueryKey.d.ts.map +1 -1
  99. package/dist/lib/composeQueryKey.js.map +1 -1
  100. package/dist/lib/request.d.ts +50 -17
  101. package/dist/lib/request.d.ts.map +1 -1
  102. package/dist/lib/request.js +42 -31
  103. package/dist/lib/request.js.map +1 -1
  104. package/dist/lib/useQueryClient.d.ts +9 -0
  105. package/dist/lib/useQueryClient.d.ts.map +1 -0
  106. package/dist/lib/useQueryClient.js +15 -0
  107. package/dist/lib/useQueryClient.js.map +1 -0
  108. package/dist/qraftAPIClient.d.ts +7 -7
  109. package/dist/qraftAPIClient.d.ts.map +1 -1
  110. package/package.json +2 -2
  111. package/src/QraftContext.ts +24 -9
  112. package/src/RequestClient.ts +10 -31
  113. package/src/callbacks/cancelQueries.ts +3 -3
  114. package/src/callbacks/getInfiniteQueryData.ts +3 -3
  115. package/src/callbacks/getInfiniteQueryKey.ts +3 -3
  116. package/src/callbacks/getMutationKey.ts +3 -3
  117. package/src/callbacks/getQueryData.ts +7 -3
  118. package/src/callbacks/getQueryKey.ts +7 -3
  119. package/src/callbacks/invalidateQueries.ts +3 -3
  120. package/src/callbacks/isFetching.ts +3 -3
  121. package/src/callbacks/mutationFn.ts +3 -3
  122. package/src/callbacks/refetchQueries.ts +4 -4
  123. package/src/callbacks/resetQueries.ts +3 -3
  124. package/src/callbacks/setInfiniteQueryData.ts +4 -4
  125. package/src/callbacks/setQueryData.ts +8 -4
  126. package/src/callbacks/useInfiniteQuery.ts +17 -15
  127. package/src/callbacks/useIsFetching.ts +6 -14
  128. package/src/callbacks/useMutation.ts +23 -17
  129. package/src/callbacks/useMutationState.ts +5 -11
  130. package/src/callbacks/useQueries.ts +20 -14
  131. package/src/callbacks/useQuery.ts +22 -17
  132. package/src/callbacks/useSuspenseInfiniteQuery.ts +17 -15
  133. package/src/callbacks/useSuspenseQueries.ts +16 -14
  134. package/src/callbacks/useSuspenseQuery.ts +17 -15
  135. package/src/index.ts +12 -7
  136. package/src/lib/callQueryClientMethodWithQueryFilters.ts +2 -2
  137. package/src/lib/composeInfiniteQueryKey.ts +3 -3
  138. package/src/lib/composeMutationKey.ts +5 -5
  139. package/src/lib/composeQueryFilters.ts +2 -2
  140. package/src/lib/composeQueryKey.ts +6 -3
  141. package/src/lib/request.ts +136 -74
  142. package/src/lib/useQueryClient.ts +26 -0
  143. package/src/qraftAPIClient.ts +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"composeQueryFilters.js","sourceRoot":"","sources":["../../src/lib/composeQueryFilters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA2B,EAC3B,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
+ {"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 { RequestClientSchema } from '../RequestClient.js';
2
- import { ServiceOperationQueryKey } from '../ServiceOperation.js';
3
- export declare function composeQueryKey<TSchema extends RequestClientSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationQueryKey<TSchema, TParams>;
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,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,wBAAgB,eAAe,CAAC,OAAO,SAAS,mBAAmB,EAAE,OAAO,EAC1E,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAE5C"}
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,CAC7B,MAAe,EACf,UAA+B;IAE/B,OAAO,CAAC,MAAM,EAAE,UAAU,IAAK,EAAc,CAAC,CAAC;AACjD,CAAC"}
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"}
@@ -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>(config: {
4
+ export declare function request<T>(options: RequestOptions, schema: OperationRequestSchema, requestInfo: OperationRequestInfo): Promise<T>;
5
+ export interface RequestOptions {
5
6
  baseUrl: string;
6
- }, requestInit: APIRequestInit, { urlSerializer: urlSerializerFunc, bodySerializer: bodySerializerFunc, }: {
7
- urlSerializer: typeof urlSerializer;
8
- bodySerializer: typeof bodySerializer;
9
- }): Promise<T>;
10
- export declare function urlSerializer(config: {
11
- baseUrl: string;
12
- }, { url, parameters }: Pick<APIRequestInit, 'url' | 'parameters'>): string;
13
- export declare function bodySerializer(options: {
14
- method: APIRequestInit['method'];
15
- mediaType: APIRequestInit['mediaType'];
16
- body: APIRequestInit['body'];
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 type APIRequestInit = {
20
- readonly method: 'get' | 'put' | 'post' | 'patch' | 'delete' | 'options' | 'head' | 'trace';
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
- readonly mediaType?: string;
54
+ /**
55
+ * Request headers
56
+ * @example { 'X-Auth': '123' }
57
+ */
30
58
  readonly headers?: HeadersOptions;
31
- } & Omit<RequestInit, 'headers' | 'method' | 'body'>;
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,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3B,WAAW,EAAE,cAAc,EAC3B,EACE,aAAa,EAAE,iBAAiB,EAChC,cAAc,EAAE,kBAAkB,GACnC,EAAE;IACD,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,cAAc,EAAE,OAAO,cAAc,CAAC;CACvC,GACA,OAAO,CAAC,CAAC,CAAC,CA2CZ;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3B,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,YAAY,CAAC,GAC9D,MAAM,CAaR;AA6DD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CAC9B,wCAuBA;AAmFD,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EACX,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;IACZ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,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,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACnC,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC"}
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"}
@@ -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(config, requestInit, { urlSerializer: urlSerializerFunc, bodySerializer: bodySerializerFunc, }) {
5
- const { method, url, parameters, mediaType, headers, body, ...requestInitRest } = requestInit;
6
- const requestBody = bodySerializerFunc({
7
- method,
8
- mediaType,
9
- body,
10
- });
11
- const response = await fetch(urlSerializerFunc(config, { url, parameters }), {
12
- method: method.toUpperCase(),
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
- ...requestInitRest,
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(config, { url, parameters }) {
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 `${config.baseUrl}${path}${getQueryString(parameters.query)}`;
45
+ if (info.parameters?.query) {
46
+ return `${baseUrl}${path}${getQueryString(info.parameters.query)}`;
39
47
  }
40
- return `${config.baseUrl}${path}`;
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(options) {
93
- if (options.body === undefined)
100
+ export function bodySerializer(schema, info) {
101
+ if (info.body === undefined)
94
102
  return;
95
- if (options.method === 'get' ||
96
- options.method === 'head' ||
97
- options.method === 'options')
103
+ if (schema.method === 'get' ||
104
+ schema.method === 'head' ||
105
+ schema.method === 'options')
98
106
  return;
99
- if (options.mediaType?.includes('/form-data'))
100
- return getRequestBodyFormData(options);
101
- if (!options.mediaType?.includes('/json') &&
102
- (typeof options.body === 'string' ||
103
- options.body instanceof Blob ||
104
- options.body instanceof FormData)) {
105
- return options.body;
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(options.body);
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
@@ -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,MAA2B,EAC3B,WAA2B,EAC3B,EACE,aAAa,EAAE,iBAAiB,EAChC,cAAc,EAAE,kBAAkB,GAInC;IAED,MAAM,EACJ,MAAM,EACN,GAAG,EACH,UAAU,EACV,SAAS,EACT,OAAO,EACP,IAAI,EACJ,GAAG,eAAe,EACnB,GAAG,WAAW,CAAC;IAEhB,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACrC,MAAM;QACN,SAAS;QACT,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE;QAC3E,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;QAC5B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,YAAY,CACnB;YACE,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC;SACtD,EACD,OAAO,EACP,UAAU,EAAE,MAAM,EAClB,WAAW,YAAY,QAAQ;YAC7B,CAAC,CAAC,sHAAsH;gBACtH,EAAE,cAAc,EAAE,IAAI,EAAE;YAC1B,CAAC,CAAC,SAAS,CACd;QACD,GAAG,eAAe;KACnB,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;IAExC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,CAAC,MAAM,eAAe,CAAC,cAAc,CAAC,CAAM,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAA2B,EAC3B,EAAE,GAAG,EAAE,UAAU,EAA8C;IAE/D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;QACxE,IAAI,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE,KAAK,EAAE,CAAC;QACtB,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,MAA2B;IACjD,MAAM,EAAE,GAAa,EAAE,CAAC;IAExB,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;QACzC,EAAE,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;QAC1C,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAE3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBACvC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9C,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,GAAG,UAA0C;IACjE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GACnB,SAAS,YAAY,OAAO;YAC1B,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;YACrB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,eAAe,EAAE,CAAC;YACvD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAI9B;IACC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IAEvC,IACE,OAAO,CAAC,MAAM,KAAK,KAAK;QACxB,OAAO,CAAC,MAAM,KAAK,MAAM;QACzB,OAAO,CAAC,MAAM,KAAK,SAAS;QAE5B,OAAO;IAET,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC;QAC3C,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEzC,IACE,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;QACrC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAC/B,OAAO,CAAC,IAAI,YAAY,IAAI;YAC5B,OAAO,CAAC,IAAI,YAAY,QAAQ,CAAC,EACnC,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,sBAAsB,CAAC,EAC9B,IAAI,GACyB;IAC7B,IAAI,IAAI,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAE1B,IAAI,IAAI,YAAY,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC7E,IAAI,IAAI,YAAY,WAAW;QAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,IAAI,IAAI,YAAY,eAAe;QACjC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,IAAI,IAAI,YAAY,cAAc;QAChC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,IAAI,gBAAgB,CAAC,CAAC;IAExE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAEhC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YACvD,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACjB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,CAAC;SACtE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA4B;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,IAAI,YAAY,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,IAAI,0BAA0B,CAAC;IACzE,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAClD,IAAI,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC;QAAE,OAAO,kBAAkB,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,eAAe,CAAI,QAAkB;IAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,GAAG;QAC3E,OAAO,SAAS,CAAC;IAEnB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;IACxE,MAAM,MAAM,GACV,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEnE,IAAI,MAAM,EAAE,CAAC;QACX,iEAAiE;QACjE,IAAI,QAAQ,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QAExC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,gCAAgC;QAEhF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAChC,IACE,OAAO,OAAO,KAAK,WAAW;gBAC9B,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW;gBAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EACtC,CAAC;gBACD,OAAO,CAAC,IAAI,CACV,gEAAgE,CACjE,CAAC;YACJ,CAAC;YACD,4DAA4D;YAC5D,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC"}
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"}
@@ -1,14 +1,14 @@
1
- import { Context } from 'react';
2
- import { QraftContextValue } from './QraftContext.js';
3
- import type { RequestClientSchema } from './RequestClient.js';
4
- export type QraftClientOptions = {
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: RequestClientSchema;
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: RequestClientSchema;
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;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC,CAAC;AAEF,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,mBAAmB,CAAA;SAAE;KACrE;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,mBAAmB,CAAA;SAAE;KACzE;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"}
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.1.5",
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.1.5",
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",
@@ -4,15 +4,30 @@ import { createContext } from 'react';
4
4
 
5
5
  import type { QueryClient } from '@tanstack/react-query';
6
6
 
7
- import type { RequestClient } from './RequestClient.js';
7
+ import type {
8
+ OperationRequestInfo,
9
+ OperationRequestSchema,
10
+ } from './lib/request.js';
8
11
 
9
- export type QraftContextValue =
10
- | {
11
- /** The request client to use for making requests. Will be invoked with every request. */
12
- requestClient: RequestClient;
13
- /** The QueryClient to use in Hooks */
14
- queryClient?: QueryClient;
15
- }
16
- | undefined;
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);
@@ -1,32 +1,11 @@
1
- export type RequestClient = <T>(
2
- schema: RequestClientSchema,
3
- options: RequestClientOptions
4
- ) => Promise<T>;
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 RequestClientOptions = {
21
- body?: BodyInit | Record<string, unknown> | null;
22
- parameters?: RequestClientParams;
23
- signal?: AbortSignal;
24
- meta?: Record<string, unknown>;
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: RequestClientSchema,
8
+ schema: OperationRequestSchema,
9
9
  args: Parameters<
10
10
  ServiceOperationCancelQueriesCallback<
11
- RequestClientSchema,
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: RequestClientSchema,
13
+ schema: OperationRequestSchema,
14
14
  args: Parameters<
15
15
  ServiceOperationQuery<
16
- RequestClientSchema,
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: RequestClientSchema,
8
+ schema: OperationRequestSchema,
9
9
  args: Parameters<
10
10
  ServiceOperationQuery<
11
- RequestClientSchema,
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: RequestClientSchema,
8
+ schema: OperationRequestSchema,
9
9
  args: Parameters<
10
10
  ServiceOperationMutation<
11
- RequestClientSchema,
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: RequestClientSchema,
8
+ schema: OperationRequestSchema,
9
9
  args: Parameters<
10
- ServiceOperationQuery<RequestClientSchema, unknown, TData>['getQueryData']
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: RequestClientSchema,
8
+ schema: OperationRequestSchema,
9
9
  args: Parameters<
10
- ServiceOperationQuery<RequestClientSchema, unknown, unknown>['getQueryKey']
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: RequestClientSchema,
8
+ schema: OperationRequestSchema,
9
9
  args: Parameters<
10
10
  ServiceOperationInvalidateQueriesCallback<
11
- RequestClientSchema,
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: RequestClientSchema,
8
+ schema: OperationRequestSchema,
9
9
  args: Parameters<
10
10
  ServiceOperationIsFetchingQueriesCallback<
11
- RequestClientSchema,
11
+ OperationRequestSchema,
12
12
  unknown,
13
13
  TData
14
14
  >['isFetching']