20261008-ide1.0发布 #1

Merged
zzh merged 24 commits from test into master 2026-10-08 09:19:21 +08:00
Showing only changes of commit 07f241ab64 - Show all commits

View File

@ -52,6 +52,35 @@ function isItfxSpaPath(afterApi: string): boolean {
)
}
/** 与 vite.config rewriteTrackProxyPath 一致:ideship PATHBASE=/track 只需单段 Track */
const TRACK_ROOT_SERVICES = ['Warning', 'ProviderService', 'Dictionary'] as const
function usesIdeshipTrackPath(origin: string): boolean {
return /ideship\.com/i.test(origin)
}
/** /Track/... → /track/...(ideship 剥掉历史双 Track) */
function rewriteTrackApiPath(path: string, origin: string): string {
for (const name of TRACK_ROOT_SERVICES) {
const prefix = `/Track/${name}`
if (path === prefix || path.startsWith(`${prefix}/`)) {
return `${origin}/track${path.slice('/Track'.length)}`
}
}
if (usesIdeshipTrackPath(origin) && path.startsWith('/Track/Track/')) {
return `${origin}/track/Track/${path.slice('/Track/Track/'.length)}`
}
return `${origin}/track${path}`
}
/** 已是 /track/... 时,ideship 仍规范化多余的 /Track/Track/ */
function normalizeTrackPathbase(path: string, origin: string): string {
if (usesIdeshipTrackPath(origin) && path.startsWith('/track/Track/Track/')) {
return `${origin}/track/Track/${path.slice('/track/Track/Track/'.length)}`
}
return `${origin}${path}`
}
/** 生产:遗留路径 → https://api.ideship.com/{itfx|track|admin}/... */
export function rewriteBrowserApiPath(url: string): string {
if (!url || import.meta.env.DEV) return url
@ -63,14 +92,13 @@ export function rewriteBrowserApiPath(url: string): string {
const origin = prodApiOrigin()
// 已是绝对 PATHBASE 相对路径 → 挂到 api 域名
if (
path.startsWith('/itfx/') ||
path === '/itfx' ||
path.startsWith('/track/') ||
path === '/track' ||
path.startsWith('/admin/') ||
path === '/admin'
) {
if (path.startsWith('/itfx/') || path === '/itfx') {
return `${origin}${path}`
}
if (path.startsWith('/track/') || path === '/track') {
return normalizeTrackPathbase(path, origin)
}
if (path.startsWith('/admin/') || path === '/admin') {
return `${origin}${path}`
}
@ -93,11 +121,15 @@ export function rewriteBrowserApiPath(url: string): string {
}
if (path.startsWith('/Track')) {
return `${origin}/track${path}`
return rewriteTrackApiPath(path, origin)
}
if (path.startsWith('/trackApi/')) {
return `${origin}/track/${path.slice('/trackApi/'.length)}`
const rest = path.slice('/trackApi/'.length)
if (usesIdeshipTrackPath(origin) && rest.startsWith('Track/Track/')) {
return `${origin}/track/Track/${rest.slice('Track/Track/'.length)}`
}
return `${origin}/track/${rest}`
}
return path