import { getIndexWorkerStatusSQL } from '@supabase/pg-meta' import { useQuery } from '@tanstack/react-query' import { authKeys } from './keys' import { executeSql } from '@/data/sql/execute-sql-mutation' import { ResponseError, UseCustomQueryOptions } from '@/types' type IndexWorkerStatusVariables = { projectRef?: string connectionString?: string | null } type IndexWorkerStatusData = { is_in_progress: boolean } export type IndexWorkerStatusError = ResponseError export async function getIndexWorkerStatus( { projectRef, connectionString }: IndexWorkerStatusVariables, signal?: AbortSignal ): Promise { const sql = getIndexWorkerStatusSQL() const { result } = await executeSql( { projectRef, connectionString, sql, queryKey: ['index-worker-status'], }, signal ) return result[0] } export const useIndexWorkerStatusQuery = ( { projectRef, connectionString }: IndexWorkerStatusVariables, { enabled = true, ...options }: UseCustomQueryOptions = {} ) => useQuery({ queryKey: authKeys.indexWorkerStatus(projectRef), queryFn: ({ signal }) => getIndexWorkerStatus( { projectRef, connectionString, }, signal ), enabled: enabled && typeof projectRef !== 'undefined', ...options, })