type GeneratedQuery = PostgrestFilterBuilder<any, any> & { _table?: string };
type QueryCreator = (supabase: SupabaseClient<Database>) => PostgrestFilterBuilder<any, any> & { _table?: string };
function useQuery(queryCreator: QueryCreator, options?: UseQueryOptions & { queryKey?: string | unknown[] }) {
const query = queryCreator(client);
const execute = (query: GeneratedQuery) =>
new Promise<any>(async (resolve, reject) => {
const { data, error } = await query;
if (data) {
resolve(data);
} else {
reject(error);
}
});
return useReactQuery(options?.queryKey ?? [query._table], () => execute(query), options);
}
type GeneratedQuery = PostgrestFilterBuilder<any, any> & { _table?: string };
type QueryCreator = (supabase: SupabaseClient<Database>) => PostgrestFilterBuilder<any, any> & { _table?: string };
function useQuery(queryCreator: QueryCreator, options?: UseQueryOptions & { queryKey?: string | unknown[] }) {
const query = queryCreator(client);
const execute = (query: GeneratedQuery) =>
new Promise<any>(async (resolve, reject) => {
const { data, error } = await query;
if (data) {
resolve(data);
} else {
reject(error);
}
});
return useReactQuery(options?.queryKey ?? [query._table], () => execute(query), options);
}