26 lines
1.0 KiB
TypeScript
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: 'خطایی رخ داد.' }
|
|
}
|