// packages/api-client/src/supabase-browser.ts // 브라우저 컴포넌트용 Supabase 클라이언트 (캐싱 싱글턴). // Database 제네릭 주입 (@supabase/ssr 0.10 + supabase-js 2.103 정합). import { createBrowserClient } from '@supabase/ssr' import type { Database } from './types' import { requireSupabasePublicConfig } from './client' let cachedClient: ReturnType> | null = null export function getSupabaseBrowserClient(): ReturnType> { if (cachedClient) return cachedClient const { url, anonKey } = requireSupabasePublicConfig({ url: process.env.NEXT_PUBLIC_SUPABASE_URL, anonKey: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY, }) cachedClient = createBrowserClient(url, anonKey) return cachedClient } export function isSupabaseConfigured(): boolean { return Boolean( process.env.NEXT_PUBLIC_SUPABASE_URL?.trim() && process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY?.trim(), ) }