Files
vibn-frontend/lib/utils/api-url.ts

36 lines
981 B
TypeScript

/**
* Get the base URL for internal API calls
* Works in both development and production environments
*/
export function getBaseUrl(request?: Request): string {
// In production (Firebase/Vercel), use the request origin
if (request && typeof window === 'undefined') {
const origin = request.headers.get('origin') || request.headers.get('referer');
if (origin) {
return new URL(origin).origin;
}
}
// Check environment variables
if (process.env.NEXT_PUBLIC_APP_URL) {
return process.env.NEXT_PUBLIC_APP_URL;
}
if (process.env.VERCEL_URL) {
return `https://${process.env.VERCEL_URL}`;
}
// Default to localhost for development
return 'http://localhost:3000';
}
/**
* Get the full API URL for internal API calls
*/
export function getApiUrl(path: string, request?: Request): string {
const baseUrl = getBaseUrl(request);
const cleanPath = path.startsWith('/') ? path : `/${path}`;
return `${baseUrl}${cleanPath}`;
}