NapCatQQ/napcat.webui/src/utils/url.ts
2025-01-24 21:13:44 +08:00

46 lines
1.1 KiB
TypeScript

import { AxiosResponse } from 'axios'
/**
* 打开链接
* @param url 链接地址
* @param newTab 是否在新标签页打开
*/
export function openUrl(url: string, newTab = true) {
if (newTab) {
window.open(url)
} else {
window.location.href = url
}
}
/**
* 将Axios的响应转换为标准的HTTP报文
* @param response Axios响应
* @returns 标准的HTTP报文
*/
export function parseAxiosResponse(
response: AxiosResponse,
http_version: string = 'HTTP/1.1'
) {
if (!response?.status) {
return 'No response'
}
const statusLine = `${http_version} ${response.status} ${response.statusText}`
const headers = Object.entries(response.headers)
.map(([key, value]) => `${key}: ${value}`)
.join('\r\n')
const body = response.data
? `\r\n\r\n${typeof response.data === 'string' ? JSON.stringify(JSON.parse(response.data), null, 2) : JSON.stringify(response.data, null, 2)}`
: ''
return `${statusLine}\r\n${headers}${body}`
}
/**
* 判断是否为URI
* @param uri URI
* @returns 是否为URI
*/
export const isURI = (uri: string) => {
return /^(http|https|file):\/\/.*/.test(uri)
}