Files
supabase/apps/studio/data/service-status/edge-functions-status-query.ts
T
Joshen Lim 669a96bed8 Chore/deprecate lib common fetch (#36503)
* Deprecate use of getWithTimeout, refactor BuildingState and RestoringState to use RQ

* Refactor profile-create-mutation to use data/fetchers, and edge-function-status-query to use fetch

* Shift post from lib/common/fetch, refactor bucket-object-download-mutation

* Address feedback

* Minor fix

* Smol fix
2025-06-18 18:14:16 +08:00

41 lines
1.3 KiB
TypeScript

import { useQuery, UseQueryOptions } from '@tanstack/react-query'
import type { ResponseError } from 'types'
import { serviceStatusKeys } from './keys'
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
}: UseQueryOptions<EdgeFunctionServiceStatusData, EdgeFunctionServiceStatusError, TData> = {}
) =>
useQuery<EdgeFunctionServiceStatusData, EdgeFunctionServiceStatusError, TData>(
serviceStatusKeys.edgeFunctions(projectRef),
({ signal }) => getEdgeFunctionServiceStatus(signal),
{
enabled: enabled && typeof projectRef !== 'undefined',
...options,
}
)