mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-02 14:22:28 +08:00
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
|
|
/**
|
||
|
|
* Get the base path for API calls and static assets
|
||
|
|
* This is used for subdirectory deployment support
|
||
|
|
*
|
||
|
|
* Example: If deployed at https://example.com/nextaidrawio, this returns "/nextaidrawio"
|
||
|
|
* For root deployment, this returns ""
|
||
|
|
*
|
||
|
|
* Set NEXT_PUBLIC_BASE_PATH environment variable to your subdirectory path (e.g., /nextaidrawio)
|
||
|
|
*/
|
||
|
|
export function getBasePath(): string {
|
||
|
|
// Read from environment variable (must start with NEXT_PUBLIC_ to be available on client)
|
||
|
|
const basePath = process.env.NEXT_PUBLIC_BASE_PATH || ""
|
||
|
|
if (basePath && !basePath.startsWith("/")) {
|
||
|
|
console.warn("NEXT_PUBLIC_BASE_PATH should start with /")
|
||
|
|
}
|
||
|
|
return basePath
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get full API endpoint URL
|
||
|
|
* @param endpoint - API endpoint path (e.g., "/api/chat", "/api/config")
|
||
|
|
* @returns Full API path with base path prefix
|
||
|
|
*/
|
||
|
|
export function getApiEndpoint(endpoint: string): string {
|
||
|
|
const basePath = getBasePath()
|
||
|
|
return `${basePath}${endpoint}`
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get full static asset URL
|
||
|
|
* @param assetPath - Asset path (e.g., "/example.png", "/chain-of-thought.txt")
|
||
|
|
* @returns Full asset path with base path prefix
|
||
|
|
*/
|
||
|
|
export function getAssetUrl(assetPath: string): string {
|
||
|
|
const basePath = getBasePath()
|
||
|
|
return `${basePath}${assetPath}`
|
||
|
|
}
|