| import { logger } from '@librechat/data-schemas'; | |
| /** | |
| * Gets the base path from the DOMAIN_CLIENT environment variable. | |
| * This is useful for constructing URLs when LibreChat is served from a subdirectory. | |
| * @returns {string} The base path (e.g., '/librechat' or '') | |
| */ | |
| export function getBasePath(): string { | |
| if (!process.env.DOMAIN_CLIENT) { | |
| return ''; | |
| } | |
| try { | |
| const clientUrl = new URL(process.env.DOMAIN_CLIENT); | |
| // Keep consistent with the logic in api/server/index.js | |
| const baseHref = clientUrl.pathname.endsWith('/') | |
| ? clientUrl.pathname.slice(0, -1) // Remove trailing slash for path construction | |
| : clientUrl.pathname; | |
| return baseHref === '/' ? '' : baseHref; | |
| } catch (error) { | |
| logger.warn('Error parsing DOMAIN_CLIENT for base path:', error); | |
| return ''; | |
| } | |
| } | |