import type { ApiResponse } from '@/types/common' export class ApiResponseError extends Error { readonly code: number | string readonly traceId?: string constructor(response: ApiResponse) { super(response.message || '接口请求失败') this.name = 'ApiResponseError' this.code = response.code this.traceId = response.traceId } } export function isSuccessCode(code: number | string) { return code === 0 || code === '0' } export function unwrapApiResponse(response: ApiResponse): T { if (!isSuccessCode(response.code)) { throw new ApiResponseError(response) } if (response.data === null) { throw new Error(response.message || '接口未返回业务数据') } return response.data } export function unwrapNullableApiResponse(response: ApiResponse): T | null { if (!isSuccessCode(response.code)) { throw new ApiResponseError(response) } return response.data }