fork of hey-api/openapi-ts because I need some additional things
1// This file is auto-generated by @hey-api/openapi-ts
2
3import {
4 type DefaultError,
5 type MutationOptions,
6 queryOptions,
7 skipToken,
8} from '@tanstack/svelte-query';
9
10import { client } from '../client.gen';
11import {
12 addPet,
13 createUser,
14 createUsersWithListInput,
15 deleteOrder,
16 deletePet,
17 deleteUser,
18 findPetsByStatus,
19 findPetsByTags,
20 getInventory,
21 getOrderById,
22 getPetById,
23 getUserByName,
24 loginUser,
25 logoutUser,
26 type Options,
27 placeOrder,
28 updatePet,
29 updatePetWithForm,
30 updateUser,
31 uploadFile,
32} from '../sdk.gen';
33import type {
34 AddPetData,
35 AddPetResponse,
36 CreateUserData,
37 CreateUserResponse,
38 CreateUsersWithListInputData,
39 CreateUsersWithListInputResponse,
40 DeleteOrderData,
41 DeletePetData,
42 DeleteUserData,
43 FindPetsByStatusData,
44 FindPetsByStatusResponse,
45 FindPetsByTagsData,
46 FindPetsByTagsResponse,
47 GetInventoryData,
48 GetInventoryResponse,
49 GetOrderByIdData,
50 GetOrderByIdResponse,
51 GetPetByIdData,
52 GetPetByIdResponse,
53 GetUserByNameData,
54 GetUserByNameResponse,
55 LoginUserData,
56 LoginUserResponse,
57 LogoutUserData,
58 PlaceOrderData,
59 PlaceOrderResponse,
60 UpdatePetData,
61 UpdatePetResponse,
62 UpdatePetWithFormData,
63 UpdatePetWithFormResponse,
64 UpdateUserData,
65 UploadFileData,
66 UploadFileResponse,
67} from '../types.gen';
68
69/**
70 * Add a new pet to the store.
71 *
72 * Add a new pet to the store.
73 */
74export const addPetMutation = (
75 options?: Partial<Options<AddPetData>>,
76): MutationOptions<AddPetResponse, DefaultError, Options<AddPetData>> => {
77 const mutationOptions: MutationOptions<AddPetResponse, DefaultError, Options<AddPetData>> = {
78 mutationFn: async (fnOptions) => {
79 const { data } = await addPet({
80 ...options,
81 ...fnOptions,
82 throwOnError: true,
83 });
84 return data;
85 },
86 };
87 return mutationOptions;
88};
89
90/**
91 * Update an existing pet.
92 *
93 * Update an existing pet by Id.
94 */
95export const updatePetMutation = (
96 options?: Partial<Options<UpdatePetData>>,
97): MutationOptions<UpdatePetResponse, DefaultError, Options<UpdatePetData>> => {
98 const mutationOptions: MutationOptions<
99 UpdatePetResponse,
100 DefaultError,
101 Options<UpdatePetData>
102 > = {
103 mutationFn: async (fnOptions) => {
104 const { data } = await updatePet({
105 ...options,
106 ...fnOptions,
107 throwOnError: true,
108 });
109 return data;
110 },
111 };
112 return mutationOptions;
113};
114
115export type QueryKey<TOptions extends Options> = [
116 Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & {
117 _id: string;
118 _infinite?: boolean;
119 tags?: ReadonlyArray<string>;
120 },
121];
122
123const createQueryKey = <TOptions extends Options>(
124 id: string,
125 options?: TOptions,
126 infinite?: boolean,
127 tags?: ReadonlyArray<string>,
128): [QueryKey<TOptions>[0]] => {
129 const params: QueryKey<TOptions>[0] = {
130 _id: id,
131 baseUrl: options?.baseUrl || (options?.client ?? client).getConfig().baseUrl,
132 } as QueryKey<TOptions>[0];
133 if (infinite) {
134 params._infinite = infinite;
135 }
136 if (tags) {
137 params.tags = tags;
138 }
139 if (options?.body) {
140 params.body = options.body;
141 }
142 if (options?.headers) {
143 params.headers = options.headers;
144 }
145 if (options?.path) {
146 params.path = options.path;
147 }
148 if (options?.query) {
149 params.query = options.query;
150 }
151 return [params];
152};
153
154const unwrapSkipToken = <T>(options: T | typeof skipToken): T | undefined =>
155 options !== skipToken ? (options as T) : undefined;
156
157export const findPetsByStatusQueryKey = (options: Options<FindPetsByStatusData>) =>
158 createQueryKey('findPetsByStatus', options);
159
160/**
161 * Finds Pets by status.
162 *
163 * Multiple status values can be provided with comma separated strings.
164 */
165export const findPetsByStatusOptions = (
166 options: Options<FindPetsByStatusData> | typeof skipToken,
167) =>
168 queryOptions<
169 FindPetsByStatusResponse,
170 DefaultError,
171 FindPetsByStatusResponse,
172 ReturnType<typeof findPetsByStatusQueryKey>
173 >({
174 queryFn:
175 options === skipToken
176 ? skipToken
177 : async ({ queryKey, signal }) => {
178 const { data } = await findPetsByStatus({
179 ...unwrapSkipToken(options),
180 ...queryKey[0],
181 signal,
182 throwOnError: true,
183 });
184 return data;
185 },
186 queryKey: findPetsByStatusQueryKey(unwrapSkipToken(options) as Options<FindPetsByStatusData>),
187 });
188
189export const findPetsByTagsQueryKey = (options: Options<FindPetsByTagsData>) =>
190 createQueryKey('findPetsByTags', options);
191
192/**
193 * Finds Pets by tags.
194 *
195 * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
196 */
197export const findPetsByTagsOptions = (options: Options<FindPetsByTagsData> | typeof skipToken) =>
198 queryOptions<
199 FindPetsByTagsResponse,
200 DefaultError,
201 FindPetsByTagsResponse,
202 ReturnType<typeof findPetsByTagsQueryKey>
203 >({
204 queryFn:
205 options === skipToken
206 ? skipToken
207 : async ({ queryKey, signal }) => {
208 const { data } = await findPetsByTags({
209 ...unwrapSkipToken(options),
210 ...queryKey[0],
211 signal,
212 throwOnError: true,
213 });
214 return data;
215 },
216 queryKey: findPetsByTagsQueryKey(unwrapSkipToken(options) as Options<FindPetsByTagsData>),
217 });
218
219/**
220 * Deletes a pet.
221 *
222 * Delete a pet.
223 */
224export const deletePetMutation = (
225 options?: Partial<Options<DeletePetData>>,
226): MutationOptions<unknown, DefaultError, Options<DeletePetData>> => {
227 const mutationOptions: MutationOptions<unknown, DefaultError, Options<DeletePetData>> = {
228 mutationFn: async (fnOptions) => {
229 const { data } = await deletePet({
230 ...options,
231 ...fnOptions,
232 throwOnError: true,
233 });
234 return data;
235 },
236 };
237 return mutationOptions;
238};
239
240export const getPetByIdQueryKey = (options: Options<GetPetByIdData>) =>
241 createQueryKey('getPetById', options);
242
243/**
244 * Find pet by ID.
245 *
246 * Returns a single pet.
247 */
248export const getPetByIdOptions = (options: Options<GetPetByIdData> | typeof skipToken) =>
249 queryOptions<
250 GetPetByIdResponse,
251 DefaultError,
252 GetPetByIdResponse,
253 ReturnType<typeof getPetByIdQueryKey>
254 >({
255 queryFn:
256 options === skipToken
257 ? skipToken
258 : async ({ queryKey, signal }) => {
259 const { data } = await getPetById({
260 ...unwrapSkipToken(options),
261 ...queryKey[0],
262 signal,
263 throwOnError: true,
264 });
265 return data;
266 },
267 queryKey: getPetByIdQueryKey(unwrapSkipToken(options) as Options<GetPetByIdData>),
268 });
269
270/**
271 * Updates a pet in the store with form data.
272 *
273 * Updates a pet resource based on the form data.
274 */
275export const updatePetWithFormMutation = (
276 options?: Partial<Options<UpdatePetWithFormData>>,
277): MutationOptions<UpdatePetWithFormResponse, DefaultError, Options<UpdatePetWithFormData>> => {
278 const mutationOptions: MutationOptions<
279 UpdatePetWithFormResponse,
280 DefaultError,
281 Options<UpdatePetWithFormData>
282 > = {
283 mutationFn: async (fnOptions) => {
284 const { data } = await updatePetWithForm({
285 ...options,
286 ...fnOptions,
287 throwOnError: true,
288 });
289 return data;
290 },
291 };
292 return mutationOptions;
293};
294
295/**
296 * Uploads an image.
297 *
298 * Upload image of the pet.
299 */
300export const uploadFileMutation = (
301 options?: Partial<Options<UploadFileData>>,
302): MutationOptions<UploadFileResponse, DefaultError, Options<UploadFileData>> => {
303 const mutationOptions: MutationOptions<
304 UploadFileResponse,
305 DefaultError,
306 Options<UploadFileData>
307 > = {
308 mutationFn: async (fnOptions) => {
309 const { data } = await uploadFile({
310 ...options,
311 ...fnOptions,
312 throwOnError: true,
313 });
314 return data;
315 },
316 };
317 return mutationOptions;
318};
319
320export const getInventoryQueryKey = (options?: Options<GetInventoryData>) =>
321 createQueryKey('getInventory', options);
322
323/**
324 * Returns pet inventories by status.
325 *
326 * Returns a map of status codes to quantities.
327 */
328export const getInventoryOptions = (options?: Options<GetInventoryData> | typeof skipToken) =>
329 queryOptions<
330 GetInventoryResponse,
331 DefaultError,
332 GetInventoryResponse,
333 ReturnType<typeof getInventoryQueryKey>
334 >({
335 queryFn:
336 options === skipToken
337 ? skipToken
338 : async ({ queryKey, signal }) => {
339 const { data } = await getInventory({
340 ...unwrapSkipToken(options),
341 ...queryKey[0],
342 signal,
343 throwOnError: true,
344 });
345 return data;
346 },
347 queryKey: getInventoryQueryKey(unwrapSkipToken(options)),
348 });
349
350/**
351 * Place an order for a pet.
352 *
353 * Place a new order in the store.
354 */
355export const placeOrderMutation = (
356 options?: Partial<Options<PlaceOrderData>>,
357): MutationOptions<PlaceOrderResponse, DefaultError, Options<PlaceOrderData>> => {
358 const mutationOptions: MutationOptions<
359 PlaceOrderResponse,
360 DefaultError,
361 Options<PlaceOrderData>
362 > = {
363 mutationFn: async (fnOptions) => {
364 const { data } = await placeOrder({
365 ...options,
366 ...fnOptions,
367 throwOnError: true,
368 });
369 return data;
370 },
371 };
372 return mutationOptions;
373};
374
375/**
376 * Delete purchase order by identifier.
377 *
378 * For valid response try integer IDs with value < 1000. Anything above 1000 or non-integers will generate API errors.
379 */
380export const deleteOrderMutation = (
381 options?: Partial<Options<DeleteOrderData>>,
382): MutationOptions<unknown, DefaultError, Options<DeleteOrderData>> => {
383 const mutationOptions: MutationOptions<unknown, DefaultError, Options<DeleteOrderData>> = {
384 mutationFn: async (fnOptions) => {
385 const { data } = await deleteOrder({
386 ...options,
387 ...fnOptions,
388 throwOnError: true,
389 });
390 return data;
391 },
392 };
393 return mutationOptions;
394};
395
396export const getOrderByIdQueryKey = (options: Options<GetOrderByIdData>) =>
397 createQueryKey('getOrderById', options);
398
399/**
400 * Find purchase order by ID.
401 *
402 * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions.
403 */
404export const getOrderByIdOptions = (options: Options<GetOrderByIdData> | typeof skipToken) =>
405 queryOptions<
406 GetOrderByIdResponse,
407 DefaultError,
408 GetOrderByIdResponse,
409 ReturnType<typeof getOrderByIdQueryKey>
410 >({
411 queryFn:
412 options === skipToken
413 ? skipToken
414 : async ({ queryKey, signal }) => {
415 const { data } = await getOrderById({
416 ...unwrapSkipToken(options),
417 ...queryKey[0],
418 signal,
419 throwOnError: true,
420 });
421 return data;
422 },
423 queryKey: getOrderByIdQueryKey(unwrapSkipToken(options) as Options<GetOrderByIdData>),
424 });
425
426/**
427 * Create user.
428 *
429 * This can only be done by the logged in user.
430 */
431export const createUserMutation = (
432 options?: Partial<Options<CreateUserData>>,
433): MutationOptions<CreateUserResponse, DefaultError, Options<CreateUserData>> => {
434 const mutationOptions: MutationOptions<
435 CreateUserResponse,
436 DefaultError,
437 Options<CreateUserData>
438 > = {
439 mutationFn: async (fnOptions) => {
440 const { data } = await createUser({
441 ...options,
442 ...fnOptions,
443 throwOnError: true,
444 });
445 return data;
446 },
447 };
448 return mutationOptions;
449};
450
451/**
452 * Creates list of users with given input array.
453 *
454 * Creates list of users with given input array.
455 */
456export const createUsersWithListInputMutation = (
457 options?: Partial<Options<CreateUsersWithListInputData>>,
458): MutationOptions<
459 CreateUsersWithListInputResponse,
460 DefaultError,
461 Options<CreateUsersWithListInputData>
462> => {
463 const mutationOptions: MutationOptions<
464 CreateUsersWithListInputResponse,
465 DefaultError,
466 Options<CreateUsersWithListInputData>
467 > = {
468 mutationFn: async (fnOptions) => {
469 const { data } = await createUsersWithListInput({
470 ...options,
471 ...fnOptions,
472 throwOnError: true,
473 });
474 return data;
475 },
476 };
477 return mutationOptions;
478};
479
480export const loginUserQueryKey = (options?: Options<LoginUserData>) =>
481 createQueryKey('loginUser', options);
482
483/**
484 * Logs user into the system.
485 *
486 * Log into the system.
487 */
488export const loginUserOptions = (options?: Options<LoginUserData> | typeof skipToken) =>
489 queryOptions<
490 LoginUserResponse,
491 DefaultError,
492 LoginUserResponse,
493 ReturnType<typeof loginUserQueryKey>
494 >({
495 queryFn:
496 options === skipToken
497 ? skipToken
498 : async ({ queryKey, signal }) => {
499 const { data } = await loginUser({
500 ...unwrapSkipToken(options),
501 ...queryKey[0],
502 signal,
503 throwOnError: true,
504 });
505 return data;
506 },
507 queryKey: loginUserQueryKey(unwrapSkipToken(options)),
508 });
509
510export const logoutUserQueryKey = (options?: Options<LogoutUserData>) =>
511 createQueryKey('logoutUser', options);
512
513/**
514 * Logs out current logged in user session.
515 *
516 * Log user out of the system.
517 */
518export const logoutUserOptions = (options?: Options<LogoutUserData> | typeof skipToken) =>
519 queryOptions<unknown, DefaultError, unknown, ReturnType<typeof logoutUserQueryKey>>({
520 queryFn:
521 options === skipToken
522 ? skipToken
523 : async ({ queryKey, signal }) => {
524 const { data } = await logoutUser({
525 ...unwrapSkipToken(options),
526 ...queryKey[0],
527 signal,
528 throwOnError: true,
529 });
530 return data;
531 },
532 queryKey: logoutUserQueryKey(unwrapSkipToken(options)),
533 });
534
535/**
536 * Delete user resource.
537 *
538 * This can only be done by the logged in user.
539 */
540export const deleteUserMutation = (
541 options?: Partial<Options<DeleteUserData>>,
542): MutationOptions<unknown, DefaultError, Options<DeleteUserData>> => {
543 const mutationOptions: MutationOptions<unknown, DefaultError, Options<DeleteUserData>> = {
544 mutationFn: async (fnOptions) => {
545 const { data } = await deleteUser({
546 ...options,
547 ...fnOptions,
548 throwOnError: true,
549 });
550 return data;
551 },
552 };
553 return mutationOptions;
554};
555
556export const getUserByNameQueryKey = (options: Options<GetUserByNameData>) =>
557 createQueryKey('getUserByName', options);
558
559/**
560 * Get user by user name.
561 *
562 * Get user detail based on username.
563 */
564export const getUserByNameOptions = (options: Options<GetUserByNameData> | typeof skipToken) =>
565 queryOptions<
566 GetUserByNameResponse,
567 DefaultError,
568 GetUserByNameResponse,
569 ReturnType<typeof getUserByNameQueryKey>
570 >({
571 queryFn:
572 options === skipToken
573 ? skipToken
574 : async ({ queryKey, signal }) => {
575 const { data } = await getUserByName({
576 ...unwrapSkipToken(options),
577 ...queryKey[0],
578 signal,
579 throwOnError: true,
580 });
581 return data;
582 },
583 queryKey: getUserByNameQueryKey(unwrapSkipToken(options) as Options<GetUserByNameData>),
584 });
585
586/**
587 * Update user resource.
588 *
589 * This can only be done by the logged in user.
590 */
591export const updateUserMutation = (
592 options?: Partial<Options<UpdateUserData>>,
593): MutationOptions<unknown, DefaultError, Options<UpdateUserData>> => {
594 const mutationOptions: MutationOptions<unknown, DefaultError, Options<UpdateUserData>> = {
595 mutationFn: async (fnOptions) => {
596 const { data } = await updateUser({
597 ...options,
598 ...fnOptions,
599 throwOnError: true,
600 });
601 return data;
602 },
603 };
604 return mutationOptions;
605};