mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-01-12 15:29:00 +08:00
46 lines
1.1 KiB
TypeScript
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)
|
|
}
|