抽取客户端 API 错误状态采集

统一普通与二进制请求的服务端错误报告逻辑
This commit is contained in:
2026-09-01 15:23:00 +08:00
parent 4950153ab1
commit 88c1bebaab
@@ -57,6 +57,16 @@ async function readApiErrorMessage(response: Response, fallback: string) {
return fallback;
}
function captureApiErrorStatus(url: string, response: Response) {
if (response.status < 500 && response.status !== 408) return;
void captureClientError(
new ClientAuthRequestError(`HTTP ${response.status}`, {
status: response.status,
}),
{ source: 'api', action: url.split('?')[0] },
);
}
export async function requestClientApi<T>(
url: string,
init: RequestInit,
@@ -89,15 +99,7 @@ export async function requestClientApi<T>(
);
}
if (!response.ok) {
const shouldCapture = response.status >= 500 || response.status === 408;
if (shouldCapture) {
void captureClientError(
new ClientAuthRequestError(`HTTP ${response.status}`, {
status: response.status,
}),
{ source: 'api', action: url.split('?')[0] },
);
}
captureApiErrorStatus(url, response);
throw new ClientAuthRequestError(
await readApiErrorMessage(response, fallbackMessage),
{ status: response.status },
@@ -141,15 +143,7 @@ export async function requestClientApiBytes(
);
}
if (!response.ok) {
const shouldCapture = response.status >= 500 || response.status === 408;
if (shouldCapture) {
void captureClientError(
new ClientAuthRequestError(`HTTP ${response.status}`, {
status: response.status,
}),
{ source: 'api', action: url.split('?')[0] },
);
}
captureApiErrorStatus(url, response);
throw new ClientAuthRequestError(
await readApiErrorMessage(response, fallbackMessage),
{ status: response.status },