Spaces:
Running
Running
import { dev } from '$app/environment'; | |
import { env } from '$env/dynamic/public'; | |
export interface ApiConfig { | |
baseUrl: string; | |
isLocal: boolean; | |
} | |
/** | |
* Get API configuration based on environment | |
*/ | |
export function getApiConfig(): ApiConfig { | |
// Check for explicit environment variable first | |
const apiUrl = env.PUBLIC_API_URL; | |
if (apiUrl) { | |
return { | |
baseUrl: apiUrl, | |
isLocal: apiUrl.includes('localhost') || apiUrl.includes('127.0.0.1') | |
}; | |
} | |
// Default behavior: use localhost in dev, production URL in prod | |
if (dev) { | |
return { | |
baseUrl: 'http://localhost:8000', | |
isLocal: true | |
}; | |
} | |
return { | |
baseUrl: 'https://dylanebert-3d-arena-backend.hf.space', | |
isLocal: false | |
}; | |
} | |
/** | |
* Get full API endpoint URL | |
*/ | |
export function getApiEndpoint(path: string): string { | |
const config = getApiConfig(); | |
return `${config.baseUrl}${path}`; | |
} | |
/** | |
* Public API endpoints | |
*/ | |
export const ApiEndpoints = { | |
PAIR: '/pair', | |
VOTE: '/vote', | |
LEADERBOARD: '/leaderboard', | |
} as const; | |