import { type UseMutationOptions, type UseQueryOptions, useMutation, useQuery, } from "@tanstack/react-query"; import { HelmRepositories } from "./interfaces"; import apiService from "./apiService"; // Get list of Helm repositories export function useGetRepositories( options?: UseQueryOptions ) { return useQuery( ["helm", "repositories"], () => apiService.fetchWithDefaults("/api/helm/repositories"), options ); } // Update repository from remote export function useUpdateRepo( repo: string, options?: UseMutationOptions ) { return useMutation(() => { return apiService.fetchWithDefaults( `/api/helm/repositories/${repo}`, { method: "POST", } ); }, options); } // Remove repository export function useDeleteRepo( repo: string, options?: UseMutationOptions ) { return useMutation(() => { return apiService.fetchWithDefaults( `/api/helm/repositories/${repo}`, { method: "DELETE", } ); }, options); } export function useChartRepoValues({ version, chart, }: { version: string; chart: string; }) { return useQuery( ["helm", "repositories", "values", chart, version], () => apiService.fetchWithDefaults( `/api/helm/repositories/values?chart=${chart}&version=${version}`, { headers: { "Content-Type": "text/plain; charset=utf-8" }, } ), { enabled: Boolean(version) && Boolean(chart), } ); }