Files
kamidso-front/src/contracts/errors.ts
T

26 lines
1.0 KiB
TypeScript

export interface KamidsoError {
code: string
message: string
retryable?: boolean
run_id?: string
}
export const ERROR_MESSAGES: Record<string, string> = {
ENGINE_UNAVAILABLE: 'موتور تحلیل در حال حاضر در دسترس نیست.',
FILE_TOO_LARGE: 'حجم فایل بیشتر از حد مجاز است.',
RESOURCE_ACCESS_DENIED: 'دستریرسی به این منبع برای شما مجاز نیست.',
NOT_FOUND: 'مورد درخواستی یافت نشد.',
UPLOAD_FAILED: 'بارگذاری فایل ناموفق بود.',
}
export function normalizeError(err: unknown): KamidsoError {
if (err && typeof err === 'object') {
const obj = err as Record<string, unknown>
const code = String(obj.code ?? obj.errorCode ?? 'UNKNOWN')
const message =
String(obj.message ?? obj.err_msg ?? ERROR_MESSAGES[code] ?? 'خطایی رخ داد.')
return { code, message, retryable: Boolean(obj.retryable) }
}
return { code: 'UNKNOWN', message: 'خطایی رخ داد.' }
}