import { isWeb } from '@junwon/aesthetics' import { createClient, type SupabaseClient } from '@supabase/supabase-js' import AsyncStorage from '@react-native-async-storage/async-storage' let databaseInstance: SupabaseClient | null = null const createWebClient = (): SupabaseClient => { if (databaseInstance) return databaseInstance databaseInstance = createClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, { auth: { persistSession: true, autoRefreshToken: true, detectSessionInUrl: false, }, } ) return databaseInstance } const createMobileClient = (): SupabaseClient => { if (databaseInstance) return databaseInstance databaseInstance = createClient( process.env.EXPO_PUBLIC_SUPABASE_URL!, process.env.EXPO_PUBLIC_SUPABASE_ANON_KEY!, { auth: { storage: AsyncStorage, persistSession: true, autoRefreshToken: true, detectSessionInUrl: false, }, } ) return databaseInstance } export const getDatabase = () => (isWeb ? createWebClient() : createMobileClient())