64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
/**
|
||
* Admin API 地址(方案 A)
|
||
* - 开发:相对路径,Vite 代理到 Admin
|
||
* - 生产:直连 https://api.ideship.com/admin(可用 VITE_API_ADMIN_URL 覆盖)
|
||
*/
|
||
|
||
function normalizeBase(base: string): string {
|
||
return base.trim().replace(/\/$/, '')
|
||
}
|
||
|
||
function ensureLeadingSlash(path: string): string {
|
||
return path.startsWith('/') ? path : `/${path}`
|
||
}
|
||
|
||
const DEFAULT_PROD_ADMIN = 'https://api.ideship.com/admin'
|
||
|
||
function prodAdminBase(): string {
|
||
const override = import.meta.env.VITE_API_ADMIN_URL as string | undefined
|
||
if (override?.trim()) return normalizeBase(override)
|
||
return DEFAULT_PROD_ADMIN
|
||
}
|
||
|
||
/** 浏览器请求 Admin API(OpenAPI.BASE 或 omsUrl/orderUrl 等) */
|
||
export function resolveAdminApiPath(path: string): string {
|
||
const p = ensureLeadingSlash(path)
|
||
if (!import.meta.env.DEV) {
|
||
return `${prodAdminBase()}${p}`
|
||
}
|
||
return p
|
||
}
|
||
|
||
export function resolveOpenApiBase(): string {
|
||
if (!import.meta.env.DEV) {
|
||
return prodAdminBase()
|
||
}
|
||
return ''
|
||
}
|
||
|
||
/** 桌面 Agent 等直连 Admin 网关 */
|
||
export function resolveDirectAdminApiUrl(): string {
|
||
const override = import.meta.env.VITE_API_ADMIN_URL as string | undefined
|
||
if (override?.trim()) {
|
||
return normalizeBase(override)
|
||
}
|
||
if (import.meta.env.DEV) {
|
||
return 'http://api.nanafa.com/admin'
|
||
}
|
||
return DEFAULT_PROD_ADMIN
|
||
}
|
||
|
||
/** 静态资源(uploads)在 Admin wwwroot,须带 `/admin`。
|
||
* 生产默认 api 域名;开发空串走 Vite `/uploads` 代理。
|
||
*/
|
||
export function resolveAdminAssetOrigin(): string {
|
||
const override = import.meta.env.VITE_API_ASSET_ORIGIN as string | undefined
|
||
if (override?.trim()) {
|
||
return normalizeBase(override)
|
||
}
|
||
if (!import.meta.env.DEV) {
|
||
return DEFAULT_PROD_ADMIN
|
||
}
|
||
return ''
|
||
}
|