Files
ironmount/apps/client/app/api-client/@tanstack/react-query.gen.ts
Nicolas Meienberger 37effcb4e3 refactor: use rr actions/loader
refactor: use rr actions
2025-08-31 21:19:14 +02:00

125 lines
2.7 KiB
TypeScript

// This file is auto-generated by @hey-api/openapi-ts
import { type Options, listVolumes, createVolume } from "../sdk.gen";
import {
queryOptions,
type UseMutationOptions,
type DefaultError,
} from "@tanstack/react-query";
import type {
ListVolumesData,
CreateVolumeData,
CreateVolumeResponse,
} from "../types.gen";
import { client as _heyApiClient } from "../client.gen";
export type QueryKey<TOptions extends Options> = [
Pick<TOptions, "baseUrl" | "body" | "headers" | "path" | "query"> & {
_id: string;
_infinite?: boolean;
tags?: ReadonlyArray<string>;
},
];
const createQueryKey = <TOptions extends Options>(
id: string,
options?: TOptions,
infinite?: boolean,
tags?: ReadonlyArray<string>,
): [QueryKey<TOptions>[0]] => {
const params: QueryKey<TOptions>[0] = {
_id: id,
baseUrl:
options?.baseUrl ||
(options?.client ?? _heyApiClient).getConfig().baseUrl,
} as QueryKey<TOptions>[0];
if (infinite) {
params._infinite = infinite;
}
if (tags) {
params.tags = tags;
}
if (options?.body) {
params.body = options.body;
}
if (options?.headers) {
params.headers = options.headers;
}
if (options?.path) {
params.path = options.path;
}
if (options?.query) {
params.query = options.query;
}
return [params];
};
export const listVolumesQueryKey = (options?: Options<ListVolumesData>) =>
createQueryKey("listVolumes", options);
/**
* List all volumes
*/
export const listVolumesOptions = (options?: Options<ListVolumesData>) => {
return queryOptions({
queryFn: async ({ queryKey, signal }) => {
const { data } = await listVolumes({
...options,
...queryKey[0],
signal,
throwOnError: true,
});
return data;
},
queryKey: listVolumesQueryKey(options),
});
};
export const createVolumeQueryKey = (options?: Options<CreateVolumeData>) =>
createQueryKey("createVolume", options);
/**
* Create a new volume
*/
export const createVolumeOptions = (options?: Options<CreateVolumeData>) => {
return queryOptions({
queryFn: async ({ queryKey, signal }) => {
const { data } = await createVolume({
...options,
...queryKey[0],
signal,
throwOnError: true,
});
return data;
},
queryKey: createVolumeQueryKey(options),
});
};
/**
* Create a new volume
*/
export const createVolumeMutation = (
options?: Partial<Options<CreateVolumeData>>,
): UseMutationOptions<
CreateVolumeResponse,
DefaultError,
Options<CreateVolumeData>
> => {
const mutationOptions: UseMutationOptions<
CreateVolumeResponse,
DefaultError,
Options<CreateVolumeData>
> = {
mutationFn: async (localOptions) => {
const { data } = await createVolume({
...options,
...localOptions,
throwOnError: true,
});
return data;
},
};
return mutationOptions;
};