Files
frontend-miniapp/src/utils/publicUrl.ts

43 lines
1.1 KiB
TypeScript

const SAME_SERVER_HOST = '1.92.206.90'
const LEGACY_AUDIO_HOST = '47.120.48.148'
const isAbsoluteHttpUrl = (url: string) => /^https?:\/\//i.test(url)
export const normalizeSameOriginPublicUrl = (url: string | null | undefined) => {
const value = url?.trim()
if (!value || !isAbsoluteHttpUrl(value)) return value || ''
try {
const parsed = new URL(value)
const isSameServer = parsed.hostname === SAME_SERVER_HOST
if (
isSameServer
&& parsed.port === '9000'
&& parsed.pathname.startsWith('/museum-assets/')
) {
return `${parsed.pathname}${parsed.search}${parsed.hash}`
}
if (
isSameServer
&& parsed.port === '48080'
&& parsed.pathname.startsWith('/yudao-server/')
) {
return `${parsed.pathname}${parsed.search}${parsed.hash}`
}
if (
parsed.hostname === LEGACY_AUDIO_HOST
&& parsed.port === '19000'
&& parsed.pathname.startsWith('/nhm/audio/')
) {
return `${parsed.pathname}${parsed.search}${parsed.hash}`
}
} catch {
return value
}
return value
}