front/src/utils/adminApi.ts
2026-09-07 10:27:12 +08:00

64 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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 ''
}