Skip to content

Commit 45b627e

Browse files
committed
feat(types): add CreateClientHelper utils type
1 parent 7876a24 commit 45b627e

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

src/index.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,25 @@ export * from '@supabase/realtime-js'
2121
export { default as SupabaseClient } from './SupabaseClient'
2222
export type { SupabaseClientOptions, QueryResult, QueryData, QueryError } from './lib/types'
2323

24-
/**
25-
* Creates a new Supabase Client.
26-
*/
27-
export const createClient = <
24+
export type CreateClientHelper<AdditionalOptions = {}> = <
2825
Database = any,
2926
SchemaName extends string & keyof Database = 'public' extends keyof Database
3027
? 'public'
3128
: string & keyof Database,
32-
Schema extends GenericSchema = Database[SchemaName] extends GenericSchema
33-
? Database[SchemaName]
34-
: any
29+
Schema = Database[SchemaName] extends GenericSchema ? Database[SchemaName] : any
3530
>(
3631
supabaseUrl: string,
3732
supabaseKey: string,
38-
options?: SupabaseClientOptions<SchemaName>
39-
): SupabaseClient<Database, SchemaName, Schema> => {
40-
return new SupabaseClient<Database, SchemaName, Schema>(supabaseUrl, supabaseKey, options)
33+
options?: SupabaseClientOptions<SchemaName> & AdditionalOptions
34+
) => SupabaseClient<Database, SchemaName, Schema extends GenericSchema ? Schema : any>
35+
36+
export type GenericSupabaseClient = SupabaseClient<any, any, any>
37+
38+
/**
39+
* Creates a new Supabase Client.
40+
*/
41+
export const createClient: CreateClientHelper = (supabaseUrl, supabaseKey, options) => {
42+
return new SupabaseClient(supabaseUrl, supabaseKey, options)
4143
}
4244

4345
// Check for Node.js <= 18 deprecation

src/lib/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,4 @@ export type GenericSchema = {
123123
export type QueryResult<T> = T extends PromiseLike<infer U> ? U : never
124124
export type QueryData<T> = T extends PromiseLike<{ data: infer U }> ? Exclude<U, null> : never
125125
export type QueryError = PostgrestError
126+
export type ServicesOptions = {}

0 commit comments

Comments
 (0)