diff --git a/src/index.ts b/src/index.ts index c0bba47e..d622e7b0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,7 +17,12 @@ 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, + QueryResultData, + QueryResultError, +} from './lib/types' /** * Creates a new Supabase Client. diff --git a/src/lib/types.ts b/src/lib/types.ts index 94f7e833..43530c39 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 QueryResultData = T extends PromiseLike<{ data: infer U }> ? Exclude : never +export type QueryResultError = PostgrestError