import { getKeywordsSql } from '@supabase/pg-meta' import { useQuery } from '@tanstack/react-query' import { databaseKeys } from './keys' import { executeSql } from '@/data/sql/execute-sql-mutation' import { ResponseError, UseCustomQueryOptions } from '@/types' export type KeywordsVariables = { projectRef?: string connectionString?: string | null } export async function getKeywords( { projectRef, connectionString }: KeywordsVariables, signal?: AbortSignal ) { const sql = getKeywordsSql() const { result } = await executeSql( { projectRef, connectionString, sql, queryKey: ['keywords'] }, signal ) return result.map((x: { word: string }) => x.word.toLocaleLowerCase()) as string[] } export type KeywordsData = Awaited> export type KeywordsError = ResponseError export const useKeywordsQuery = ( { projectRef, connectionString }: KeywordsVariables, { enabled = true, ...options }: UseCustomQueryOptions = {} ) => useQuery({ queryKey: databaseKeys.keywords(projectRef), queryFn: ({ signal }) => getKeywords({ projectRef, connectionString }, signal), enabled: enabled && typeof projectRef !== 'undefined', ...options, })