// helpers.ts import { SupabaseClientOptions } from './types' export function uuid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8 return v.toString(16) }) } export function stripTrailingSlash(url: string): string { return url.replace(/\/$/, '') } export const isBrowser = () => typeof window !== 'undefined' export function applySettingDefaults< Database = any, SchemaName extends string & keyof Database = 'public' extends keyof Database ? 'public' : string & keyof Database >( options: SupabaseClientOptions, defaults: SupabaseClientOptions ): SupabaseClientOptions { const { db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions, } = options const { db: DEFAULT_DB_OPTIONS, auth: DEFAULT_AUTH_OPTIONS, realtime: DEFAULT_REALTIME_OPTIONS, global: DEFAULT_GLOBAL_OPTIONS, } = defaults return { db: { ...DEFAULT_DB_OPTIONS, ...dbOptions, }, auth: { ...DEFAULT_AUTH_OPTIONS, ...authOptions, }, realtime: { ...DEFAULT_REALTIME_OPTIONS, ...realtimeOptions, }, global: { ...DEFAULT_GLOBAL_OPTIONS, ...globalOptions, }, } }