Files
knowai/api/errors.ts
tobegold574 6a81b7bb13
Some checks reported errors
continuous-integration/drone/push Build was killed
feat(image): 新建 knowai-core:1.0.0 镜像并完成推送
- 搭建 api、auth、utils 等逻辑模块
- 通过 tsc、eslint、vitest 测试验证

BREAKING CHANGE: 新镜像分支
2025-11-10 20:20:25 +08:00

47 lines
935 B
TypeScript

/**
* API错误处理
*/
import type { AxiosError } from 'axios';
/**
* API错误接口
*/
export interface IApiError {
code: number;
message: string;
details?: unknown;
}
/**
* API错误类
*/
export class ApiError extends Error implements IApiError {
public readonly code: number;
public readonly details: unknown;
constructor(code: number, message: string, details?: unknown) {
super(message);
this.name = 'ApiError';
this.code = code;
this.details = details;
}
/**
* 从Axios错误创建API错误
*/
static fromAxiosError(error: AxiosError): ApiError {
if (!error.response) {
return new ApiError(0, error.message || '网络错误');
}
const { status, data } = error.response;
const message = data && typeof data === 'object' && 'message' in data
? data.message as string
: '请求失败';
return new ApiError(status, message, data);
}
}