Files
supabase/apps/studio/data/service-status/edge-functions-status-query.ts

43 lines
1.3 KiB
TypeScript

import { useQuery } from '@tanstack/react-query'
import { serviceStatusKeys } from './keys'
import type { ResponseError, UseCustomQueryOptions } from '@/types'
export type EdgeFunctionServiceStatusVariables = {
projectRef?: string
}
export async function getEdgeFunctionServiceStatus(signal?: AbortSignal) {
try {
const res = await fetch('https://obuldanrptloktxcffvn.supabase.co/functions/v1/health-check', {
method: 'GET',
signal,
})
const response = await res.json()
return response as { healthy: boolean }
} catch (err) {
return { healthy: false }
}
}
export type EdgeFunctionServiceStatusData = Awaited<ReturnType<typeof getEdgeFunctionServiceStatus>>
export type EdgeFunctionServiceStatusError = ResponseError
export const useEdgeFunctionServiceStatusQuery = <TData = EdgeFunctionServiceStatusData>(
{ projectRef }: EdgeFunctionServiceStatusVariables,
{
enabled = true,
...options
}: UseCustomQueryOptions<
EdgeFunctionServiceStatusData,
EdgeFunctionServiceStatusError,
TData
> = {}
) =>
useQuery<EdgeFunctionServiceStatusData, EdgeFunctionServiceStatusError, TData>({
queryKey: serviceStatusKeys.edgeFunctions(projectRef),
queryFn: ({ signal }) => getEdgeFunctionServiceStatus(signal),
enabled: enabled && typeof projectRef !== 'undefined',
...options,
})