27 lines
748 B
TypeScript
27 lines
748 B
TypeScript
import { createClient } from '@supabase/supabase-js'
|
|
|
|
let cachedClient: ReturnType<typeof createClient> | null = null
|
|
|
|
export function getSupabaseAdminClient() {
|
|
if (cachedClient) return cachedClient
|
|
|
|
const supabaseUrl = Bun.env.SUPABASE_URL ?? Bun.env.VITE_SUPABASE_URL
|
|
const supabaseServiceRoleKey = Bun.env.SUPABASE_SERVICE_ROLE_KEY
|
|
|
|
if (!supabaseUrl || !supabaseServiceRoleKey) {
|
|
throw new Error(
|
|
'Missing Supabase admin env vars. Set SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY in backend environment.',
|
|
)
|
|
}
|
|
|
|
cachedClient = createClient(supabaseUrl, supabaseServiceRoleKey, {
|
|
auth: {
|
|
autoRefreshToken: false,
|
|
persistSession: false,
|
|
detectSessionInUrl: false,
|
|
},
|
|
})
|
|
|
|
return cachedClient
|
|
}
|