35 lines
1.4 KiB
TypeScript
35 lines
1.4 KiB
TypeScript
// packages/core/src/supabase-config.ts
|
|
// Supabase 연결 정보 SSOT — 데스크톱, 웹, 모바일 모두 여기서 참조.
|
|
// Anon key는 클라이언트용 공개 키(RLS 보호)이므로 소스에 포함해도 안전.
|
|
|
|
interface MobileE2eSupabaseOverride {
|
|
url?: unknown
|
|
anonKey?: unknown
|
|
}
|
|
|
|
const runtimeOverride = (
|
|
globalThis as typeof globalThis & { __D3RO_MOBILE_E2E_SUPABASE__?: MobileE2eSupabaseOverride }
|
|
).__D3RO_MOBILE_E2E_SUPABASE__
|
|
const runtimeUrl = runtimeOverride?.url
|
|
const runtimeAnonKey = runtimeOverride?.anonKey
|
|
const validRuntimeOverride = runtimeUrl === 'http://10.0.2.2:55321'
|
|
&& typeof runtimeAnonKey === 'string'
|
|
&& /^sb_publishable_[A-Za-z0-9_-]{20,}$/.test(runtimeAnonKey)
|
|
|
|
export const SUPABASE_LOCAL_MOBILE_E2E = validRuntimeOverride
|
|
|
|
export const SUPABASE_URL =
|
|
(validRuntimeOverride ? runtimeUrl : undefined) ||
|
|
(typeof process !== 'undefined' &&
|
|
(process.env?.NEXT_PUBLIC_SUPABASE_URL ||
|
|
process.env?.SUPABASE_URL ||
|
|
process.env?.VITE_SUPABASE_URL)) ||
|
|
'https://llnocwyqvhgwpdjcqqyw.supabase.co'
|
|
|
|
export const SUPABASE_ANON_KEY =
|
|
(validRuntimeOverride ? runtimeAnonKey : undefined) ||
|
|
(typeof process !== 'undefined' &&
|
|
(process.env?.NEXT_PUBLIC_SUPABASE_ANON_KEY ||
|
|
process.env?.SUPABASE_ANON_KEY ||
|
|
process.env?.VITE_SUPABASE_ANON_KEY)) ||
|
|
'sb_publishable_0uo4UYYvUO2y-sVMFdYylA_hHv9qRt5'
|