diff --git a/src/index.ts b/src/index.ts index c0bba47e..54370f7a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,7 +17,7 @@ export { } from '@supabase/functions-js' export * from '@supabase/realtime-js' export { default as SupabaseClient } from './SupabaseClient' -export type { SupabaseClientOptions } from './lib/types' +export type { SupabaseClientOptions, QueryResult, QueryData, QueryError } from './lib/types' /** * Creates a new Supabase Client. diff --git a/src/lib/types.ts b/src/lib/types.ts index 94f7e833..487133ad 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -1,5 +1,6 @@ import { GoTrueClient } from '@supabase/gotrue-js' import { RealtimeClientOptions } from '@supabase/realtime-js' +import { PostgrestError } from '@supabase/postgrest-js' type GoTrueClientOptions = ConstructorParameters[0] @@ -95,3 +96,10 @@ export type GenericSchema = { Views: Record Functions: Record } + +/** + * Helper types for query results. + */ +export type QueryResult = T extends PromiseLike ? U : never +export type QueryData = T extends PromiseLike<{ data: infer U }> ? Exclude : never +export type QueryError = PostgrestError