@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.
- package/README.md +287 -0
- package/dist/QraftContext.d.ts +8 -0
- package/dist/QraftContext.d.ts.map +1 -0
- package/dist/QraftContext.js +3 -0
- package/dist/QraftContext.js.map +1 -0
- package/dist/RequestClient.d.ts +19 -0
- package/dist/RequestClient.d.ts.map +1 -0
- package/dist/RequestClient.js +2 -0
- package/dist/RequestClient.js.map +1 -0
- package/dist/ServiceOperation.d.ts +122 -0
- package/dist/ServiceOperation.d.ts.map +1 -0
- package/dist/ServiceOperation.js +2 -0
- package/dist/ServiceOperation.js.map +1 -0
- package/dist/callbacks/getInfiniteQueryData.d.ts +6 -0
- package/dist/callbacks/getInfiniteQueryData.d.ts.map +1 -0
- package/dist/callbacks/getInfiniteQueryData.js +8 -0
- package/dist/callbacks/getInfiniteQueryData.js.map +1 -0
- package/dist/callbacks/getInfiniteQueryKey.d.ts +8 -0
- package/dist/callbacks/getInfiniteQueryKey.d.ts.map +1 -0
- package/dist/callbacks/getInfiniteQueryKey.js +7 -0
- package/dist/callbacks/getInfiniteQueryKey.js.map +1 -0
- package/dist/callbacks/getMutationKey.d.ts +5 -0
- package/dist/callbacks/getMutationKey.d.ts.map +1 -0
- package/dist/callbacks/getMutationKey.js +22 -0
- package/dist/callbacks/getMutationKey.js.map +1 -0
- package/dist/callbacks/getQueryData.d.ts +5 -0
- package/dist/callbacks/getQueryData.d.ts.map +1 -0
- package/dist/callbacks/getQueryData.js +8 -0
- package/dist/callbacks/getQueryData.js.map +1 -0
- package/dist/callbacks/getQueryKey.d.ts +7 -0
- package/dist/callbacks/getQueryKey.d.ts.map +1 -0
- package/dist/callbacks/getQueryKey.js +4 -0
- package/dist/callbacks/getQueryKey.js.map +1 -0
- package/dist/callbacks/mutationFn.d.ts +4 -0
- package/dist/callbacks/mutationFn.d.ts.map +1 -0
- package/dist/callbacks/mutationFn.js +8 -0
- package/dist/callbacks/mutationFn.js.map +1 -0
- package/dist/callbacks/queryFn.d.ts +15 -0
- package/dist/callbacks/queryFn.d.ts.map +1 -0
- package/dist/callbacks/queryFn.js +10 -0
- package/dist/callbacks/queryFn.js.map +1 -0
- package/dist/callbacks/setInfiniteQueryData.d.ts +6 -0
- package/dist/callbacks/setInfiniteQueryData.d.ts.map +1 -0
- package/dist/callbacks/setInfiniteQueryData.js +6 -0
- package/dist/callbacks/setInfiniteQueryData.js.map +1 -0
- package/dist/callbacks/setQueryData.d.ts +5 -0
- package/dist/callbacks/setQueryData.d.ts.map +1 -0
- package/dist/callbacks/setQueryData.js +9 -0
- package/dist/callbacks/setQueryData.js.map +1 -0
- package/dist/callbacks/useInfiniteQuery.d.ts +13 -0
- package/dist/callbacks/useInfiniteQuery.d.ts.map +1 -0
- package/dist/callbacks/useInfiniteQuery.js +50 -0
- package/dist/callbacks/useInfiniteQuery.js.map +1 -0
- package/dist/callbacks/useMutation.d.ts +7 -0
- package/dist/callbacks/useMutation.d.ts.map +1 -0
- package/dist/callbacks/useMutation.js +51 -0
- package/dist/callbacks/useMutation.js.map +1 -0
- package/dist/callbacks/useQuery.d.ts +9 -0
- package/dist/callbacks/useQuery.d.ts.map +1 -0
- package/dist/callbacks/useQuery.js +27 -0
- package/dist/callbacks/useQuery.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/createCallbackProxyDecoration.d.ts +5 -0
- package/dist/lib/createCallbackProxyDecoration.d.ts.map +1 -0
- package/dist/lib/createCallbackProxyDecoration.js +21 -0
- package/dist/lib/createCallbackProxyDecoration.js.map +1 -0
- package/dist/lib/createRecursiveProxy.d.ts +7 -0
- package/dist/lib/createRecursiveProxy.d.ts.map +1 -0
- package/dist/lib/createRecursiveProxy.js +24 -0
- package/dist/lib/createRecursiveProxy.js.map +1 -0
- package/dist/lib/request.d.ts +32 -0
- package/dist/lib/request.d.ts.map +1 -0
- package/dist/lib/request.js +167 -0
- package/dist/lib/request.js.map +1 -0
- package/dist/qraftAPIClient.d.ts +25 -0
- package/dist/qraftAPIClient.d.ts.map +1 -0
- package/dist/qraftAPIClient.js +22 -0
- package/dist/qraftAPIClient.js.map +1 -0
- package/package.json +79 -0
- package/src/QraftContext.ts +12 -0
- package/src/RequestClient.ts +32 -0
- package/src/ServiceOperation.ts +306 -0
- package/src/callbacks/getInfiniteQueryData.ts +26 -0
- package/src/callbacks/getInfiniteQueryKey.ts +23 -0
- package/src/callbacks/getMutationKey.ts +47 -0
- package/src/callbacks/getQueryData.ts +20 -0
- package/src/callbacks/getQueryKey.ts +19 -0
- package/src/callbacks/mutationFn.ts +22 -0
- package/src/callbacks/queryFn.ts +21 -0
- package/src/callbacks/setInfiniteQueryData.ts +29 -0
- package/src/callbacks/setQueryData.ts +23 -0
- package/src/callbacks/shelfMerge.test.ts +94 -0
- package/src/callbacks/useInfiniteQuery.ts +88 -0
- package/src/callbacks/useMutation.ts +100 -0
- package/src/callbacks/useQuery.ts +56 -0
- package/src/index.ts +11 -0
- package/src/lib/createCallbackProxyDecoration.ts +34 -0
- package/src/lib/createRecursiveProxy.ts +27 -0
- package/src/lib/request.ts +252 -0
- package/src/mocks/handlers.ts +252 -0
- package/src/mocks/node.ts +5 -0
- package/src/qraftAPIClient.test.tsx +595 -0
- package/src/qraftAPIClient.ts +77 -0
- 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 @@
|
|
|
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 @@
|
|
|
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":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|