diff --git a/src/supabase/supabase.client.ts b/src/supabase/supabase.client.ts index 1dba456..8d08ce6 100644 --- a/src/supabase/supabase.client.ts +++ b/src/supabase/supabase.client.ts @@ -1,6 +1,20 @@ -import { createClient } from '@supabase/supabase-js'; +import { createClient, type SupabaseClient } from '@supabase/supabase-js'; -export const supabaseAdmin = createClient( - process.env.SUPABASE_URL ?? '', - process.env.SUPABASE_SERVICE_ROLE_KEY ?? '', -); +let _client: SupabaseClient | null = null; + +function getClient(): SupabaseClient { + if (_client) return _client; + const url = process.env.SUPABASE_URL; + const key = process.env.SUPABASE_SERVICE_ROLE_KEY; + if (!url || !key) { + throw new Error('SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY must be set before using supabaseAdmin'); + } + _client = createClient(url, key); + return _client; +} + +export const supabaseAdmin = new Proxy({} as SupabaseClient, { + get(_target, prop) { + return (getClient() as Record)[prop]; + }, +});