@openapi-qraft/react 1.0.0-beta.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 (107) hide show
  1. package/README.md +287 -0
  2. package/dist/QraftContext.d.ts +8 -0
  3. package/dist/QraftContext.d.ts.map +1 -0
  4. package/dist/QraftContext.js +3 -0
  5. package/dist/QraftContext.js.map +1 -0
  6. package/dist/RequestClient.d.ts +19 -0
  7. package/dist/RequestClient.d.ts.map +1 -0
  8. package/dist/RequestClient.js +2 -0
  9. package/dist/RequestClient.js.map +1 -0
  10. package/dist/ServiceOperation.d.ts +122 -0
  11. package/dist/ServiceOperation.d.ts.map +1 -0
  12. package/dist/ServiceOperation.js +2 -0
  13. package/dist/ServiceOperation.js.map +1 -0
  14. package/dist/callbacks/getInfiniteQueryData.d.ts +6 -0
  15. package/dist/callbacks/getInfiniteQueryData.d.ts.map +1 -0
  16. package/dist/callbacks/getInfiniteQueryData.js +8 -0
  17. package/dist/callbacks/getInfiniteQueryData.js.map +1 -0
  18. package/dist/callbacks/getInfiniteQueryKey.d.ts +8 -0
  19. package/dist/callbacks/getInfiniteQueryKey.d.ts.map +1 -0
  20. package/dist/callbacks/getInfiniteQueryKey.js +7 -0
  21. package/dist/callbacks/getInfiniteQueryKey.js.map +1 -0
  22. package/dist/callbacks/getMutationKey.d.ts +5 -0
  23. package/dist/callbacks/getMutationKey.d.ts.map +1 -0
  24. package/dist/callbacks/getMutationKey.js +22 -0
  25. package/dist/callbacks/getMutationKey.js.map +1 -0
  26. package/dist/callbacks/getQueryData.d.ts +5 -0
  27. package/dist/callbacks/getQueryData.d.ts.map +1 -0
  28. package/dist/callbacks/getQueryData.js +8 -0
  29. package/dist/callbacks/getQueryData.js.map +1 -0
  30. package/dist/callbacks/getQueryKey.d.ts +7 -0
  31. package/dist/callbacks/getQueryKey.d.ts.map +1 -0
  32. package/dist/callbacks/getQueryKey.js +4 -0
  33. package/dist/callbacks/getQueryKey.js.map +1 -0
  34. package/dist/callbacks/mutationFn.d.ts +4 -0
  35. package/dist/callbacks/mutationFn.d.ts.map +1 -0
  36. package/dist/callbacks/mutationFn.js +8 -0
  37. package/dist/callbacks/mutationFn.js.map +1 -0
  38. package/dist/callbacks/queryFn.d.ts +15 -0
  39. package/dist/callbacks/queryFn.d.ts.map +1 -0
  40. package/dist/callbacks/queryFn.js +10 -0
  41. package/dist/callbacks/queryFn.js.map +1 -0
  42. package/dist/callbacks/setInfiniteQueryData.d.ts +6 -0
  43. package/dist/callbacks/setInfiniteQueryData.d.ts.map +1 -0
  44. package/dist/callbacks/setInfiniteQueryData.js +6 -0
  45. package/dist/callbacks/setInfiniteQueryData.js.map +1 -0
  46. package/dist/callbacks/setQueryData.d.ts +5 -0
  47. package/dist/callbacks/setQueryData.d.ts.map +1 -0
  48. package/dist/callbacks/setQueryData.js +9 -0
  49. package/dist/callbacks/setQueryData.js.map +1 -0
  50. package/dist/callbacks/useInfiniteQuery.d.ts +13 -0
  51. package/dist/callbacks/useInfiniteQuery.d.ts.map +1 -0
  52. package/dist/callbacks/useInfiniteQuery.js +50 -0
  53. package/dist/callbacks/useInfiniteQuery.js.map +1 -0
  54. package/dist/callbacks/useMutation.d.ts +7 -0
  55. package/dist/callbacks/useMutation.d.ts.map +1 -0
  56. package/dist/callbacks/useMutation.js +51 -0
  57. package/dist/callbacks/useMutation.js.map +1 -0
  58. package/dist/callbacks/useQuery.d.ts +9 -0
  59. package/dist/callbacks/useQuery.d.ts.map +1 -0
  60. package/dist/callbacks/useQuery.js +27 -0
  61. package/dist/callbacks/useQuery.js.map +1 -0
  62. package/dist/index.d.ts +9 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +4 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/lib/createCallbackProxyDecoration.d.ts +5 -0
  67. package/dist/lib/createCallbackProxyDecoration.d.ts.map +1 -0
  68. package/dist/lib/createCallbackProxyDecoration.js +21 -0
  69. package/dist/lib/createCallbackProxyDecoration.js.map +1 -0
  70. package/dist/lib/createRecursiveProxy.d.ts +7 -0
  71. package/dist/lib/createRecursiveProxy.d.ts.map +1 -0
  72. package/dist/lib/createRecursiveProxy.js +24 -0
  73. package/dist/lib/createRecursiveProxy.js.map +1 -0
  74. package/dist/lib/request.d.ts +32 -0
  75. package/dist/lib/request.d.ts.map +1 -0
  76. package/dist/lib/request.js +167 -0
  77. package/dist/lib/request.js.map +1 -0
  78. package/dist/qraftAPIClient.d.ts +25 -0
  79. package/dist/qraftAPIClient.d.ts.map +1 -0
  80. package/dist/qraftAPIClient.js +22 -0
  81. package/dist/qraftAPIClient.js.map +1 -0
  82. package/package.json +79 -0
  83. package/src/QraftContext.ts +12 -0
  84. package/src/RequestClient.ts +32 -0
  85. package/src/ServiceOperation.ts +306 -0
  86. package/src/callbacks/getInfiniteQueryData.ts +26 -0
  87. package/src/callbacks/getInfiniteQueryKey.ts +23 -0
  88. package/src/callbacks/getMutationKey.ts +47 -0
  89. package/src/callbacks/getQueryData.ts +20 -0
  90. package/src/callbacks/getQueryKey.ts +19 -0
  91. package/src/callbacks/mutationFn.ts +22 -0
  92. package/src/callbacks/queryFn.ts +21 -0
  93. package/src/callbacks/setInfiniteQueryData.ts +29 -0
  94. package/src/callbacks/setQueryData.ts +23 -0
  95. package/src/callbacks/shelfMerge.test.ts +94 -0
  96. package/src/callbacks/useInfiniteQuery.ts +88 -0
  97. package/src/callbacks/useMutation.ts +100 -0
  98. package/src/callbacks/useQuery.ts +56 -0
  99. package/src/index.ts +11 -0
  100. package/src/lib/createCallbackProxyDecoration.ts +34 -0
  101. package/src/lib/createRecursiveProxy.ts +27 -0
  102. package/src/lib/request.ts +252 -0
  103. package/src/mocks/handlers.ts +252 -0
  104. package/src/mocks/node.ts +5 -0
  105. package/src/qraftAPIClient.test.tsx +595 -0
  106. package/src/qraftAPIClient.ts +77 -0
  107. package/src/setupTests.ts +17 -0
package/README.md ADDED
@@ -0,0 +1,287 @@
1
+ # @openapi-qraft/react
2
+
3
+ `@openapi-qraft/react` is a modular TypeScript client designed to facilitate type-safe API requests in React
4
+ applications,
5
+ leveraging the power of Tanstack Query. It utilizes a Proxy-based architecture to dynamically generate Tanstack Query
6
+ hooks with typed parameters, ensuring that your API requests are both type-safe and efficient.
7
+
8
+ ## Features
9
+
10
+ - **Type-safe API Requests:** Utilize TypeScript for type-safe API requests, reducing runtime errors and improving
11
+ developer experience.
12
+ - **Modular Design:** Customize the utility with a set of callbacks to handle API calls according to your project's
13
+ needs.
14
+ - **Integration with [Tanstack Query](https://tanstack.com/query/v5):** Seamlessly integrate with _Tanstack Query_ for
15
+ handling server state, caching, and data synchronization.
16
+ - **Dynamic Proxy-Based Hooks:** Automatically generate React Query hooks for your API endpoints without manual
17
+ boilerplate.
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install @openapi-qraft/react@beta
23
+ ```
24
+
25
+ ## Getting Started
26
+
27
+ To get started with `@openapi-qraft/react`, you'll need to set up your client by passing in your API services and a set
28
+ of
29
+ callbacks to handle various React Query functionalities.
30
+
31
+ ### 1. Generate API Types
32
+
33
+ Before utilizing `@openapi-qraft/react` to make typed requests, you need to define your API services by generating types
34
+ and
35
+ schemas from your OpenAPI specification. This ensures that your requests are type-safe and that your development
36
+ experience benefits from TypeScript's power. Follow the steps below to generate your API services:
37
+
38
+ #### Generating TypeScript Definitions
39
+
40
+ First, generate TypeScript definitions from your OpenAPI schema
41
+ using [`openapi-typescript`](https://www.npmjs.com/package/openapi-typescript). This will provide you with
42
+ the necessary types for your API requests and responses.
43
+
44
+ ```bash
45
+ npx openapi-typescript https://api.dev.monite.com/openapi.json?version=2023-09-01 --output src/api/openapi.d.ts
46
+ ```
47
+
48
+ #### Generating Qraft Services
49
+
50
+ Next, use `@openapi-qraft/cli` to generate the services and typed Tanstack Query React Hooks. Ensure to specify the path to the
51
+ TypeScript definitions generated in the previous step.
52
+
53
+ ```bash
54
+ npx @openapi-qraft/cli https://api.dev.monite.com/openapi.json?version=2023-09-01 --output-dir src/api --openapi-types-import-path '../openapi.d.ts'
55
+ ```
56
+
57
+ By completing these steps, you will generate `openapi.d.ts`, which serves as a TypeScript representation of the
58
+ specified OpenAPI, _along with a set of services_ in `src/api/services`. These elements are key to enhancing your
59
+ development workflow with type
60
+ safety and auto-completion features.
61
+
62
+ ### 2. Create API Client
63
+
64
+ Now, create the API Client to utilize typed React Hooks for your API endpoints.
65
+
66
+ ```ts
67
+ /** '--output-dir' path to your generated services **/
68
+ import { createAPIClient } from './api';
69
+
70
+ const qraft = createAPIClient();
71
+ ```
72
+
73
+ This setup provides you with a powerful, type-safe way to interact with your backend APIs using React Query.
74
+ The `createAPIClient` function generates a client that allows you to make API calls with type-checked
75
+ parameters, ensuring that your application remains robust and error-free.
76
+
77
+ ### 3. Provide Request Client
78
+
79
+ Finally, provide the request client to the `QraftContext` to enable the generated hooks to make API requests.
80
+
81
+ Every request will be handled by `requestClient`, which can be customized to fit your project's needs.
82
+
83
+ ```tsx
84
+ import { useMemo } from 'react';
85
+
86
+ import { request, bodySerializer, urlSerializer } from '@openapi-qraft/react';
87
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
88
+
89
+ function Providers({ children }: { children: React.ReactNode }) {
90
+ const queryClient = useMemo(() => new QueryClient(), []);
91
+
92
+ return (
93
+ <QueryClientProvider client={queryClient}>
94
+ <QraftContext.Provider
95
+ value={{
96
+ /**
97
+ * Request client will be invoked for every request
98
+ */
99
+ requestClient(schema, options) {
100
+ return request(
101
+ {
102
+ baseUrl: 'https://api.sandbox.monite.com/v1',
103
+ },
104
+ {
105
+ ...schema,
106
+ ...options,
107
+ headers: {
108
+ /** Specify your predefined header here **/
109
+ // Authorization: 'Bearer token',
110
+ },
111
+ },
112
+ { urlSerializer, bodySerializer } // Serializers for request body and URL
113
+ );
114
+ },
115
+ }}
116
+ >
117
+ {children}
118
+ </QraftContext.Provider>
119
+ </QueryClientProvider>
120
+ );
121
+ }
122
+
123
+ function Example() {
124
+ const { isPending, error, data } =
125
+ qract.approvalPolicies.getApprovalPoliciesId.useQuery({
126
+ path: {
127
+ approval_policy_id: '1',
128
+ },
129
+ });
130
+
131
+ if (isPending) return 'Loading...';
132
+
133
+ if (error) return 'An error has occurred: ' + error.message;
134
+
135
+ return <div>Name: {data?.name}</div>;
136
+ }
137
+
138
+ function App() {
139
+ return (
140
+ <Providers>
141
+ <Example />
142
+ </Providers>
143
+ );
144
+ }
145
+ ```
146
+
147
+ > The Qraft is designed to be as modular as possible, enabling you to integrate your own request client and serializers.
148
+ > To ensure optimal tree-shaking, we do not include default serializers in the functions.
149
+
150
+ ## Usage
151
+
152
+ With the client set up, you can now use the generated Hooks in your React Components to fetch data, execute mutations,
153
+ and more.
154
+
155
+ ### [useQuery 🔗](https://tanstack.com/query/latest/docs/framework/react/reference/useQuery)
156
+
157
+ ```ts
158
+ /**
159
+ * `qraft.approvalPolicies.getApprovalPoliciesId.useQuery(...)` will execute:
160
+ *
161
+ * GET /approval_policies/1?items_order=asc
162
+ * x-monite-version: '2023-09-01'
163
+ *
164
+ * Used Open API: GET /approval_policies/{approval_policy_id}
165
+ **/
166
+ const { data, error, isPending } =
167
+ qraft.approvalPolicies.getApprovalPoliciesId.useQuery({
168
+ header: {
169
+ 'x-monite-version': '2023-09-01',
170
+ },
171
+ path: {
172
+ approval_policy_id: '1',
173
+ },
174
+ query: {
175
+ items_order: 'asc',
176
+ },
177
+ });
178
+ ```
179
+
180
+ ### [useMutation 🔗](https://tanstack.com/query/latest/docs/framework/react/reference/useMutation)
181
+
182
+ #### With predefined parameters
183
+
184
+ In case you know the query parameters that are needed for mutation, you can preset them. In this case, you must pass
185
+ only `body` when calling `mutate()` function:
186
+
187
+ ```ts
188
+ const mutation = qraft.entities.postEntitiesIdDocuments.useMutation({
189
+ path: {
190
+ entity_id: '1',
191
+ },
192
+ });
193
+
194
+ /**
195
+ * `mutation.mutate(...)` will execute:
196
+ *
197
+ * POST /entities/1/documents
198
+ * Content-Type: application/json
199
+ * {"document_title": "Agreement of Intent"}
200
+ *
201
+ * Used Open API: POST /entities/{entity_id}/documents
202
+ **/
203
+ mutation.mutate({
204
+ document_title: 'Agreement of Intent',
205
+ });
206
+ ```
207
+
208
+ #### Without predefined parameters
209
+
210
+ It happens that at the time of calling the Mutation Hook, you don't yet know what query parameters to be passed. In this
211
+ case,
212
+ you will need to pass the _parameters and the body_ of the request when you call `mutate()` function:
213
+
214
+ ```ts
215
+ const mutation = qraft.entities.postEntitiesIdDocuments.useMutation();
216
+
217
+ /**
218
+ * `mutation.mutate(...)` will execute:
219
+ *
220
+ * POST /entities/1/documents
221
+ * Content-Type: application/json
222
+ * {"document_title": "Agreement of Intent"}
223
+ *
224
+ * Used Open API: POST /entities/{entity_id}/documents
225
+ **/
226
+
227
+ mutation.mutate({
228
+ path: {
229
+ entity_id: '1',
230
+ },
231
+ body: {
232
+ document_title: 'Agreement of Intent',
233
+ },
234
+ });
235
+ ```
236
+
237
+ ### [useInfiniteQuery 🔗](https://tanstack.com/query/latest/docs/framework/react/reference/useInfiniteQuery)
238
+
239
+ `todo::Add Description`
240
+
241
+ ```ts
242
+ /**
243
+ * `qraft.files.getFiles.useInfiniteQuery(...)` will execute:
244
+ *
245
+ * GET /files?search=Agreements&limit=10&page=1
246
+ * Content-Type: application/json
247
+ *
248
+ * Used Open API: GET /files
249
+ **/
250
+ const infiniteQuery = qraft.files.getFiles.useInfiniteQuery(
251
+ {
252
+ query: {
253
+ search: 'Agreements',
254
+ limit: 10,
255
+ },
256
+ },
257
+ {
258
+ getNextPageParam: (lastPage, allPages, lastPageParams) => {
259
+ if (lastPage.length < 10) return;
260
+ return {
261
+ query: {
262
+ page: lastPageParams.query?.page
263
+ ? lastPageParams.query.page + 1
264
+ : undefined,
265
+ },
266
+ };
267
+ },
268
+ initialPageParam: {
269
+ query: {
270
+ page: 1,
271
+ },
272
+ },
273
+ }
274
+ );
275
+
276
+ infiniteQuery.fetchNextPage(); // will execute GET /files?search=Agreements&limit=10&page=2
277
+ ```
278
+
279
+ ## Contributing
280
+
281
+ Contributions are welcome! If you have suggestions or want to improve `@openapi-qraft/react`, please feel free to submit
282
+ a
283
+ pull request or open an issue.
284
+
285
+ ## License
286
+
287
+ `@openapi-qraft/react` is licensed under the MIT License. See the LICENSE file for more details.
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import type { RequestClient } from './RequestClient.js';
3
+ export type QraftContextValue = {
4
+ /** The request client to use for making requests. Will be invoked with every request. */
5
+ requestClient: RequestClient;
6
+ } | undefined;
7
+ export declare const QraftContext: import("react").Context<QraftContextValue>;
8
+ //# sourceMappingURL=QraftContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QraftContext.d.ts","sourceRoot":"","sources":["../src/QraftContext.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GACzB;IACE,yFAAyF;IACzF,aAAa,EAAE,aAAa,CAAC;CAC9B,GACD,SAAS,CAAC;AAEd,eAAO,MAAM,YAAY,4CAA8C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ export const QraftContext = createContext(undefined);
3
+ //# sourceMappingURL=QraftContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QraftContext.js","sourceRoot":"","sources":["../src/QraftContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAWtC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAoB,SAAS,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type RequestClient = <T>(schema: RequestClientSchema, options: RequestClientOptions) => Promise<T>;
2
+ export type RequestClientSchema = {
3
+ url: string;
4
+ method: 'get' | 'put' | 'post' | 'patch' | 'delete' | 'options' | 'head' | 'trace';
5
+ mediaType?: string;
6
+ };
7
+ export type RequestClientOptions = {
8
+ body?: BodyInit | Record<string, unknown> | null;
9
+ parameters?: RequestClientParams;
10
+ signal?: AbortSignal;
11
+ meta?: Record<string, unknown>;
12
+ };
13
+ export type RequestClientParams = {
14
+ header?: Record<string, any>;
15
+ path?: Record<string, any>;
16
+ query?: Record<string, any>;
17
+ cookie?: Record<string, any>;
18
+ };
19
+ //# sourceMappingURL=RequestClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestClient.d.ts","sourceRoot":"","sources":["../src/RequestClient.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAC5B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EACF,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RequestClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestClient.js","sourceRoot":"","sources":["../src/RequestClient.ts"],"names":[],"mappings":""}
@@ -0,0 +1,122 @@
1
+ import { DefaultError, InfiniteData, QueryClient, InfiniteQueryPageParamsOptions, NoInfer, SetDataOptions, Updater } from '@tanstack/query-core';
2
+ import type { DefinedInitialDataInfiniteOptions, DefinedInitialDataOptions, DefinedUseInfiniteQueryResult, DefinedUseQueryResult, UndefinedInitialDataInfiniteOptions, UndefinedInitialDataOptions, UseInfiniteQueryResult, UseMutationOptions, UseMutationResult, UseQueryResult } from '@tanstack/react-query';
3
+ export type ServiceOperationQueryKey<S extends {
4
+ url: string;
5
+ }, T> = [
6
+ Pick<S, 'url'>,
7
+ T
8
+ ];
9
+ export type ServiceOperationInfiniteQueryKey<S extends {
10
+ url: string;
11
+ }, T> = [
12
+ Pick<S, 'url'> & {
13
+ infinite: true;
14
+ },
15
+ T
16
+ ];
17
+ export type ServiceOperationMutationKey<S extends Record<'url' | 'method', string>, T> = [Pick<S, 'url' | 'method'>, T];
18
+ export interface ServiceOperationQuery<TSchema extends {
19
+ url: string;
20
+ method: string;
21
+ }, TData, TParams, TError = DefaultError> extends ServiceOperationUseQuery<TSchema, TData, TParams, TError>, ServiceOperationUseInfiniteQuery<TSchema, TData, TParams, TError>, ServiceOperationQueryFn<TSchema, TData, TParams>, ServiceOperationGetQueryData<TData, TParams>, ServiceOperationGetInfiniteQueryData<TData, TParams>, ServiceOperationSetQueryData<TData, TParams>, ServiceOperationSetInfiniteQueryData<TData, TParams> {
22
+ schema: TSchema;
23
+ }
24
+ interface ServiceOperationUseQuery<TSchema extends {
25
+ url: string;
26
+ method: string;
27
+ }, TData, TParams = {}, TError = DefaultError> {
28
+ getQueryKey<QueryKeyParams extends TParams>(params: QueryKeyParams): ServiceOperationQueryKey<TSchema, QueryKeyParams>;
29
+ useQuery(params: TParams, options?: Omit<UndefinedInitialDataOptions<TData, TError, TData, ServiceOperationQueryKey<TSchema, TParams> | readonly [...ServiceOperationQueryKey<TSchema, TParams>]>, 'queryKey'>, queryClient?: QueryClient): UseQueryResult<TData, TError | Error>;
30
+ useQuery(params: TParams, options: Omit<DefinedInitialDataOptions<TData, TError, TData, ServiceOperationQueryKey<TSchema, TParams> | readonly [...ServiceOperationQueryKey<TSchema, TParams>]>, 'queryKey'>, queryClient?: QueryClient): DefinedUseQueryResult<TData, TError | Error>;
31
+ }
32
+ type PartialParams<T> = T extends object ? {
33
+ [K in keyof T]?: T[K] extends object ? Partial<T[K]> : T[K];
34
+ } : T;
35
+ interface ServiceOperationUseInfiniteQuery<TSchema extends {
36
+ url: string;
37
+ method: string;
38
+ }, TData, TParams = {}, TError = DefaultError> {
39
+ getInfiniteQueryKey<QueryKeyParams extends TParams>(params: QueryKeyParams): ServiceOperationInfiniteQueryKey<TSchema, QueryKeyParams>;
40
+ useInfiniteQuery<TPageParam extends TParams>(params: TParams, options: Omit<UndefinedInitialDataInfiniteOptions<TData, TError, InfiniteData<TData>, ServiceOperationInfiniteQueryKey<TSchema, TParams> | readonly [...ServiceOperationInfiniteQueryKey<TSchema, TParams>], PartialParams<TPageParam>>, 'queryKey' | 'getPreviousPageParam' | 'getNextPageParam' | 'initialPageParam'> & InfiniteQueryPageParamsOptions<TData, PartialParams<TPageParam>>, queryClient?: QueryClient): UseInfiniteQueryResult<InfiniteData<TData>, TError | Error>;
41
+ useInfiniteQuery<TPageParam extends TParams>(params: TParams, options: Omit<DefinedInitialDataInfiniteOptions<TData, TError, InfiniteData<TData>, ServiceOperationInfiniteQueryKey<TSchema, TParams> | readonly [...ServiceOperationInfiniteQueryKey<TSchema, TParams>], PartialParams<TPageParam>>, 'queryKey' | 'getPreviousPageParam' | 'getNextPageParam' | 'initialPageParam'> & InfiniteQueryPageParamsOptions<TData, PartialParams<TPageParam>>, queryClient?: QueryClient): DefinedUseInfiniteQueryResult<InfiniteData<TData>, TError | Error>;
42
+ }
43
+ export interface ServiceOperationMutation<TSchema extends {
44
+ url: string;
45
+ method: string;
46
+ }, TBody, TData, TParams, TError = DefaultError> extends ServiceOperationUseMutation<TSchema, TBody, TData, TParams, TError>, ServiceOperationMutationFn<TSchema, TBody, TData, TParams>, ServiceOperationSetQueryData<TData, TParams> {
47
+ schema: TSchema;
48
+ }
49
+ interface ServiceOperationUseMutation<TSchema extends {
50
+ url: string;
51
+ method: string;
52
+ }, TBody, TData, TParams, TError = DefaultError> {
53
+ getMutationKey<T extends TParams>(params: T): ServiceOperationMutationKey<TSchema, T>;
54
+ useMutation<TVariables extends {
55
+ body: TBody;
56
+ } & (NonNullable<TParams> extends never ? {} : TParams), TContext = unknown>(params?: undefined, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey'> & {
57
+ mutationKey?: ServiceOperationMutationKey<TSchema, NonNullable<TParams> extends never ? {} : TParams>;
58
+ }, queryClient?: QueryClient): UseMutationResult<TData, TError | Error, TVariables, TContext>;
59
+ useMutation<TVariables extends TBody, TContext = unknown>(params: TParams, options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey'>, queryClient?: QueryClient): UseMutationResult<TData, TError | Error, TVariables, TContext>;
60
+ }
61
+ interface ServiceOperationQueryFn<TSchema extends {
62
+ url: string;
63
+ method: string;
64
+ }, TData, TParams> {
65
+ queryFn<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: {
66
+ signal?: TSignal;
67
+ meta?: TMeta;
68
+ } & ({
69
+ queryKey: [unknown, TParams];
70
+ } | {
71
+ parameters: TParams;
72
+ }), client: (schema: TSchema, options: {
73
+ parameters: TParams;
74
+ signal?: TSignal;
75
+ meta?: TMeta;
76
+ }) => TData): TData;
77
+ queryFn<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: {
78
+ signal?: TSignal;
79
+ meta?: TMeta;
80
+ } & ({
81
+ queryKey: [unknown, TParams];
82
+ } | {
83
+ parameters: TParams;
84
+ }), client: (schema: TSchema, options: {
85
+ parameters: TParams;
86
+ signal?: TSignal;
87
+ meta?: TMeta;
88
+ }) => Promise<TData>): Promise<TData>;
89
+ }
90
+ interface ServiceOperationSetQueryData<TData, TParams = {}> {
91
+ setQueryData(queryKey: TParams, updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>, queryClient: QueryClient, options?: SetDataOptions): TData | undefined;
92
+ }
93
+ interface ServiceOperationSetInfiniteQueryData<TData, TParams = {}> {
94
+ setInfiniteQueryData(queryKey: TParams, updater: Updater<NoInfer<InfiniteData<TData>> | undefined, NoInfer<InfiniteData<TData>> | undefined>, queryClient: QueryClient, options?: SetDataOptions): InfiniteData<TData> | undefined;
95
+ }
96
+ interface ServiceOperationGetQueryData<TData, TParams = {}> {
97
+ getQueryData(queryKey: TParams, queryClient: QueryClient): TData | undefined;
98
+ }
99
+ interface ServiceOperationGetInfiniteQueryData<TData, TParams = {}> {
100
+ getInfiniteQueryData(queryKey: TParams, queryClient: QueryClient): InfiniteData<TData> | undefined;
101
+ }
102
+ export interface ServiceOperationMutationFn<TSchema extends {
103
+ url: string;
104
+ method: string;
105
+ }, TBody, TData, TParams> {
106
+ mutationFn(client: (schema: TSchema, options: {
107
+ parameters: TParams;
108
+ body: TBody;
109
+ }) => TData, options: {
110
+ parameters: TParams;
111
+ body: TBody;
112
+ }): TData;
113
+ mutationFn(client: (schema: TSchema, options: {
114
+ parameters: TParams;
115
+ body: TBody;
116
+ }) => Promise<TData>, options: {
117
+ parameters: TParams;
118
+ body: TBody;
119
+ }): Promise<TData>;
120
+ }
121
+ export {};
122
+ //# sourceMappingURL=ServiceOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceOperation.d.ts","sourceRoot":"","sources":["../src/ServiceOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,8BAA8B,EAC9B,OAAO,EACP,cAAc,EACd,OAAO,EACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,iCAAiC,EACjC,yBAAyB,EACzB,6BAA6B,EAC7B,qBAAqB,EACrB,mCAAmC,EACnC,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,IAAI;IACnE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;IACd,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,gCAAgC,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,IAAI;IAC3E,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE;IACnC,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,2BAA2B,CACrC,CAAC,SAAS,MAAM,CAAC,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,EAC1C,CAAC,IACC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnC,MAAM,WAAW,qBAAqB,CACpC,OAAO,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EACL,OAAO,EACP,MAAM,GAAG,YAAY,CACrB,SAAQ,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAC/D,gCAAgC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EACjE,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAChD,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,EAC5C,oCAAoC,CAAC,KAAK,EAAE,OAAO,CAAC,EACpD,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,EAC5C,oCAAoC,CAAC,KAAK,EAAE,OAAO,CAAC;IACtD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,wBAAwB,CAChC,OAAO,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EACL,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,YAAY;IAErB,WAAW,CAAC,cAAc,SAAS,OAAO,EACxC,MAAM,EAAE,cAAc,GACrB,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAErD,QAAQ,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,IAAI,CACZ,2BAA2B,CACzB,KAAK,EACL,MAAM,EACN,KAAK,EACH,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,GAC1C,SAAS,CAAC,GAAG,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAC3D,EACD,UAAU,CACX,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IACzC,QAAQ,CACN,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,IAAI,CACX,yBAAyB,CACvB,KAAK,EACL,MAAM,EACN,KAAK,EACH,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,GAC1C,SAAS,CAAC,GAAG,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAC3D,EACD,UAAU,CACX,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;CACjD;AAED,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACpC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAC/D,CAAC,CAAC;AAEN,UAAU,gCAAgC,CACxC,OAAO,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EACL,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,YAAY;IAErB,mBAAmB,CAAC,cAAc,SAAS,OAAO,EAChD,MAAM,EAAE,cAAc,GACrB,gCAAgC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAE7D,gBAAgB,CAAC,UAAU,SAAS,OAAO,EACzC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,IAAI,CACX,mCAAmC,CACjC,KAAK,EACL,MAAM,EACN,YAAY,CAAC,KAAK,CAAC,EACjB,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,GAClD,SAAS,CAAC,GAAG,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAClE,aAAa,CAAC,UAAU,CAAC,CAC1B,EACC,UAAU,GACV,sBAAsB,GACtB,kBAAkB,GAClB,kBAAkB,CACrB,GACC,8BAA8B,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,EAClE,WAAW,CAAC,EAAE,WAAW,GACxB,sBAAsB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAC/D,gBAAgB,CAAC,UAAU,SAAS,OAAO,EACzC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,IAAI,CACX,iCAAiC,CAC/B,KAAK,EACL,MAAM,EACN,YAAY,CAAC,KAAK,CAAC,EACjB,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,GAClD,SAAS,CAAC,GAAG,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAClE,aAAa,CAAC,UAAU,CAAC,CAC1B,EACC,UAAU,GACV,sBAAsB,GACtB,kBAAkB,GAClB,kBAAkB,CACrB,GACC,8BAA8B,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,EAClE,WAAW,CAAC,EAAE,WAAW,GACxB,6BAA6B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,wBAAwB,CACvC,OAAO,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,GAAG,YAAY,CACrB,SAAQ,2BAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EACzE,0BAA0B,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAC1D,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC;IAC9C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,2BAA2B,CACnC,OAAO,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,GAAG,YAAY;IAErB,cAAc,CAAC,CAAC,SAAS,OAAO,EAC9B,MAAM,EAAE,CAAC,GACR,2BAA2B,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE3C,WAAW,CACT,UAAU,SAAS;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,KAAK,GACpE,EAAE,GACF,OAAO,CAAC,EACZ,QAAQ,GAAG,OAAO,EAElB,MAAM,CAAC,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,IAAI,CACZ,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EACvD,aAAa,CACd,GAAG;QACF,WAAW,CAAC,EAAE,2BAA2B,CACvC,OAAO,EACP,WAAW,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,EAAE,GAAG,OAAO,CAClD,CAAC;KACH,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAElE,WAAW,CAAC,UAAU,SAAS,KAAK,EAAE,QAAQ,GAAG,OAAO,EACtD,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,IAAI,CACZ,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EACvD,aAAa,CACd,EACD,WAAW,CAAC,EAAE,WAAW,GACxB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;CACnE;AAED,UAAU,uBAAuB,CAC/B,OAAO,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EACL,OAAO;IAEP,OAAO,CACL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,SAAS,WAAW,GAAG,WAAW,EAEzC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,CAC1C;QAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;KAAE,GAChC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAC1B,EACD,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,KAAK,CAAC;KACd,KACE,KAAK,GACT,KAAK,CAAC;IAET,OAAO,CACL,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,SAAS,WAAW,GAAG,WAAW,EAEzC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,CAC1C;QAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;KAAE,GAChC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAC1B,EACD,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,KAAK,CAAC;KACd,KACE,OAAO,CAAC,KAAK,CAAC,GAClB,OAAO,CAAC,KAAK,CAAC,CAAC;CACnB;AAED,UAAU,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE;IACxD,YAAY,CACV,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EACxE,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,KAAK,GAAG,SAAS,CAAC;CACtB;AAED,UAAU,oCAAoC,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE;IAChE,oBAAoB,CAClB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,CACd,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,EACxC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CACzC,EACD,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACpC;AAED,UAAU,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE;IACxD,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;CAC9E;AAED,UAAU,oCAAoC,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE;IAChE,oBAAoB,CAClB,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,WAAW,GACvB,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,0BAA0B,CACzC,OAAO,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,KAAK,EACL,KAAK,EACL,OAAO;IAEP,UAAU,CACR,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,IAAI,EAAE,KAAK,CAAC;KACb,KACE,KAAK,EACV,OAAO,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,IAAI,EAAE,KAAK,CAAC;KACb,GACA,KAAK,CAAC;IAET,UAAU,CACR,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,IAAI,EAAE,KAAK,CAAC;KACb,KACE,OAAO,CAAC,KAAK,CAAC,EACnB,OAAO,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,IAAI,EAAE,KAAK,CAAC;KACb,GACA,OAAO,CAAC,KAAK,CAAC,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ServiceOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceOperation.js","sourceRoot":"","sources":["../src/ServiceOperation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { InfiniteData } from '@tanstack/query-core';
2
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
3
+ import type { RequestClientSchema } from '../RequestClient.js';
4
+ import { ServiceOperationQuery } from '../ServiceOperation.js';
5
+ export declare function getInfiniteQueryData<TData>(qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: Parameters<ServiceOperationQuery<RequestClientSchema, unknown, TData>['getInfiniteQueryData']>): InfiniteData<TData> | undefined;
6
+ //# sourceMappingURL=getInfiniteQueryData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInfiniteQueryData.d.ts","sourceRoot":"","sources":["../../src/callbacks/getInfiniteQueryData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAEL,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,UAAU,CACd,qBAAqB,CACnB,mBAAmB,EACnB,OAAO,EACP,KAAK,CACN,CAAC,sBAAsB,CAAC,CAC1B,GACA,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAMjC"}
@@ -0,0 +1,8 @@
1
+ export function getInfiniteQueryData(qraftOptions, schema, args) {
2
+ const [params, queryClient] = args;
3
+ return queryClient.getQueryData([
4
+ { url: schema.url, infinite: true },
5
+ params,
6
+ ]);
7
+ }
8
+ //# sourceMappingURL=getInfiniteQueryData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInfiniteQueryData.js","sourceRoot":"","sources":["../../src/callbacks/getInfiniteQueryData.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,oBAAoB,CAClC,YAA4C,EAC5C,MAA2B,EAC3B,IAMC;IAED,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IACnC,OAAO,WAAW,CAAC,YAAY,CAAC;QAC9B,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnC,MAAM;KACkE,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
2
+ import type { RequestClientSchema } from '../RequestClient.js';
3
+ import { ServiceOperationQuery } from '../ServiceOperation.js';
4
+ export declare const getInfiniteQueryKey: (qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: Parameters<ServiceOperationQuery<RequestClientSchema, unknown, unknown>['getInfiniteQueryKey']>) => [{
5
+ url: string;
6
+ infinite: true;
7
+ }, unknown];
8
+ //# sourceMappingURL=getInfiniteQueryKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInfiniteQueryKey.d.ts","sourceRoot":"","sources":["../../src/callbacks/getInfiniteQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAEL,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,mBAAmB,iBAChB,kBAAkB,GAAG,SAAS,UACpC,mBAAmB,QACrB,WACJ,sBACE,mBAAmB,EACnB,OAAO,EACP,OAAO,CACR,CAAC,qBAAqB,CAAC,CACzB;;;WAMF,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const getInfiniteQueryKey = (qraftOptions, schema, args) => {
2
+ return [
3
+ { url: schema.url, infinite: true },
4
+ args[0],
5
+ ];
6
+ };
7
+ //# sourceMappingURL=getInfiniteQueryKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInfiniteQueryKey.js","sourceRoot":"","sources":["../../src/callbacks/getInfiniteQueryKey.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,YAA4C,EAC5C,MAA2B,EAC3B,IAMC,EACD,EAAE;IACF,OAAO;QACL,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnC,IAAI,CAAC,CAAC,CAAC;KACiE,CAAC;AAC7E,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
2
+ import type { RequestClientSchema } from '../RequestClient.js';
3
+ import { ServiceOperationMutationKey } from '../ServiceOperation.js';
4
+ export declare const getMutationKey: (qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: unknown) => ServiceOperationMutationKey<RequestClientSchema, unknown>;
5
+ //# sourceMappingURL=getMutationKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMutationKey.d.ts","sourceRoot":"","sources":["../../src/callbacks/getMutationKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAEL,2BAA2B,EAC5B,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,cAAc,iBACX,kBAAkB,GAAG,SAAS,UACpC,mBAAmB,QACrB,OAAO,8DAoBd,CAAC"}
@@ -0,0 +1,22 @@
1
+ export const getMutationKey = (qraftOptions, schema, args) => {
2
+ const [parameters] = args;
3
+ const key = [
4
+ {
5
+ url: schema.url,
6
+ method: schema.method,
7
+ },
8
+ omitMutationPayload(parameters),
9
+ ];
10
+ return key;
11
+ };
12
+ function omitMutationPayload(params) {
13
+ if (!params || typeof params !== 'object')
14
+ throw new Error('`params` must be object');
15
+ if ('body' in params || 'requestBody' in params) {
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
+ const { body, requestBody, ...paramsRest } = params;
18
+ return paramsRest;
19
+ }
20
+ return params;
21
+ }
22
+ //# sourceMappingURL=getMutationKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMutationKey.js","sourceRoot":"","sources":["../../src/callbacks/getMutationKey.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,YAA4C,EAC5C,MAA2B,EAC3B,IAAa,EACb,EAAE;IACF,MAAM,CAAC,UAAU,CAAC,GAAG,IAOpB,CAAC;IAEF,MAAM,GAAG,GAA8D;QACrE;YACE,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB;QACD,mBAAmB,CAAC,UAAU,CAAC;KAChC,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,SAAS,mBAAmB,CAAI,MAAS;IACvC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE7C,IAAI,MAAM,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;QAChD,6DAA6D;QAC7D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,MAG5C,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,MAAyC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
2
+ import type { RequestClientSchema } from '../RequestClient.js';
3
+ import { ServiceOperationQuery } from '../ServiceOperation.js';
4
+ export declare function getQueryData<TData>(qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: Parameters<ServiceOperationQuery<RequestClientSchema, unknown, TData>['getQueryData']>): TData | undefined;
5
+ //# sourceMappingURL=getQueryData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryData.d.ts","sourceRoot":"","sources":["../../src/callbacks/getQueryData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EACL,qBAAqB,EAEtB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,YAAY,CAAC,KAAK,EAChC,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,UAAU,CACd,qBAAqB,CAAC,mBAAmB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,cAAc,CAAC,CAC3E,GACA,KAAK,GAAG,SAAS,CAMnB"}
@@ -0,0 +1,8 @@
1
+ export function getQueryData(qraftOptions, schema, args) {
2
+ const [params, queryClient] = args;
3
+ return queryClient.getQueryData([
4
+ { url: schema.url },
5
+ params,
6
+ ]);
7
+ }
8
+ //# sourceMappingURL=getQueryData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryData.js","sourceRoot":"","sources":["../../src/callbacks/getQueryData.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,YAAY,CAC1B,YAA4C,EAC5C,MAA2B,EAC3B,IAEC;IAED,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IACnC,OAAO,WAAW,CAAC,YAAY,CAAC;QAC9B,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;QACnB,MAAM;KAC0D,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
2
+ import type { RequestClientSchema } from '../RequestClient.js';
3
+ import { ServiceOperationQuery } from '../ServiceOperation.js';
4
+ export declare const getQueryKey: (qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: Parameters<ServiceOperationQuery<RequestClientSchema, unknown, unknown>['getQueryKey']>) => [{
5
+ url: string;
6
+ }, unknown];
7
+ //# sourceMappingURL=getQueryKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryKey.d.ts","sourceRoot":"","sources":["../../src/callbacks/getQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EACL,qBAAqB,EAEtB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,WAAW,iBACR,kBAAkB,GAAG,SAAS,UACpC,mBAAmB,QACrB,WACJ,sBAAsB,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC,CAC5E;;WAMF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const getQueryKey = (qraftOptions, schema, args) => {
2
+ return [{ url: schema.url }, args[0]];
3
+ };
4
+ //# sourceMappingURL=getQueryKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryKey.js","sourceRoot":"","sources":["../../src/callbacks/getQueryKey.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,YAA4C,EAC5C,MAA2B,EAC3B,IAEC,EACD,EAAE;IACF,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAGnC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
2
+ import type { RequestClientSchema } from '../RequestClient.js';
3
+ export declare const mutationFn: (qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: unknown) => Promise<unknown>;
4
+ //# sourceMappingURL=mutationFn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutationFn.d.ts","sourceRoot":"","sources":["../../src/callbacks/mutationFn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,eAAO,MAAM,UAAU,iBACP,kBAAkB,GAAG,SAAS,UACpC,mBAAmB,QACrB,OAAO,qBAcd,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const mutationFn = (qraftOptions, schema, args) => {
2
+ const [client, options] = args;
3
+ return client(schema, {
4
+ parameters: options.parameters,
5
+ body: options.body,
6
+ });
7
+ };
8
+ //# sourceMappingURL=mutationFn.js.map