Skip to content

Commit 72b7ff3

Browse files
fix: patch types
1 parent f0da868 commit 72b7ff3

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/lib/helpers.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// helpers.ts
2+
import { SupabaseClientOptions } from './types'
23

34
export function uuid() {
45
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
@@ -14,7 +15,12 @@ export function stripTrailingSlash(url: string): string {
1415

1516
export const isBrowser = () => typeof window !== 'undefined'
1617

17-
export function applySettingDefaults(
18+
export function applySettingDefaults<
19+
Database = any,
20+
SchemaName extends string & keyof Database = 'public' extends keyof Database
21+
? 'public'
22+
: string & keyof Database
23+
>(
1824
options: SupabaseClientOptions<SchemaName>,
1925
defaults: SupabaseClientOptions<any>
2026
): SupabaseClientOptions<SchemaName> {

test/helpers.test.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ test('override setting defaults', async () => {
3333
},
3434
}
3535
let settings = helpers.applySettingDefaults(options, defaults)
36-
expect(settings.auth.autoRefreshToken).toBe(autoRefreshOption)
37-
expect(settings.auth.persistSession).not.toBeNull()
38-
expect(settings.db.schema).toBe(defaults.db.schema)
36+
expect(settings?.auth?.autoRefreshToken).toBe(autoRefreshOption)
37+
// Existing default properties should not be overwritten
38+
expect(settings?.auth?.persistSession).not.toBeNull()
39+
expect(settings?.global?.headers).toBe(DEFAULT_HEADERS)
40+
// Existing property values should remain constant
41+
expect(settings?.db?.schema).toBe(defaults.db.schema)
3942
})

0 commit comments

Comments
 (0)