51 lines
2.1 KiB
TypeScript
51 lines
2.1 KiB
TypeScript
|
|
import { createClient } from '@supabase/supabase-js';
|
|
|
|
// Supabase 온프레미스 URL과 anon key 설정
|
|
// 환경 변수를 우선적으로 사용하되, 하드코딩된 값을 기본값으로 설정
|
|
const supabaseUrl = import.meta.env.VITE_SUPABASE_URL || 'https://xguihxuzqibwxjnimxev.supabase.co';
|
|
const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InhndWloeHV6cWlid3hqbmlteGV2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzUwOTQ4MzUsImV4cCI6MTk5MDY3MDgzNX0.0PMlOxtKL4O9GGZuAP_Xl4f-Tut1qOnW4bNEmAtoB8w';
|
|
|
|
// 유효한 URL이 설정되었는지 확인
|
|
const isValidUrl = supabaseUrl && supabaseAnonKey &&
|
|
!supabaseUrl.includes('YOUR_SUPABASE_URL') &&
|
|
!supabaseAnonKey.includes('YOUR_SUPABASE_ANON_KEY');
|
|
|
|
let supabaseClient;
|
|
|
|
try {
|
|
// Supabase 클라이언트 생성
|
|
supabaseClient = createClient(supabaseUrl, supabaseAnonKey, {
|
|
auth: {
|
|
autoRefreshToken: true,
|
|
persistSession: true,
|
|
},
|
|
});
|
|
|
|
// Supabase 연결 로그
|
|
console.log('Supabase 클라이언트가 생성되었습니다.');
|
|
|
|
// 유효성 검사 로그
|
|
if (!isValidUrl) {
|
|
console.warn('경고: 유효하지 않은 Supabase URL 또는 Anon Key가 감지되었습니다.');
|
|
}
|
|
} catch (error) {
|
|
console.error('Supabase 클라이언트 생성 오류:', error);
|
|
|
|
// 더미 클라이언트 생성 (앱이 완전히 실패하지 않도록)
|
|
supabaseClient = {
|
|
auth: {
|
|
getUser: () => Promise.resolve({ data: { user: null } }),
|
|
signInWithPassword: () => Promise.reject(new Error('Supabase 설정이 필요합니다')),
|
|
signUp: () => Promise.reject(new Error('Supabase 설정이 필요합니다')),
|
|
},
|
|
from: () => ({
|
|
select: () => ({ eq: () => ({ data: null, error: new Error('Supabase 설정이 필요합니다') }) }),
|
|
insert: () => ({ error: new Error('Supabase 설정이 필요합니다') }),
|
|
delete: () => ({ eq: () => ({ error: new Error('Supabase 설정이 필요합니다') }) }),
|
|
}),
|
|
};
|
|
}
|
|
|
|
export const supabase = supabaseClient;
|