UNPKG

autotel

Version:
1 lines 5.8 kB
{"version":3,"sources":["../src/parse-error.ts"],"names":[],"mappings":"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","file":"chunk-T4B5LB6E.cjs","sourcesContent":["import type { StructuredError } from './structured-error';\n\nexport interface ParsedError {\n message: string;\n status: number;\n why?: string;\n fix?: string;\n link?: string;\n code?: string | number;\n details?: Record<string, unknown>;\n raw: unknown;\n}\n\ntype ErrorLike = {\n message?: unknown;\n status?: unknown;\n statusCode?: unknown;\n data?: unknown;\n code?: unknown;\n why?: unknown;\n fix?: unknown;\n link?: unknown;\n details?: unknown;\n};\n\nfunction toStatus(value: unknown): number | undefined {\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n if (typeof value === 'string') {\n const n = Number(value);\n if (Number.isFinite(n)) return n;\n }\n return undefined;\n}\n\nfunction pickString(value: unknown): string | undefined {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nfunction pickCode(value: unknown): string | number | undefined {\n if (typeof value === 'string' || typeof value === 'number') return value;\n return undefined;\n}\n\nfunction pickDetails(value: unknown): Record<string, unknown> | undefined {\n if (value && typeof value === 'object' && value.constructor === Object) {\n return value as Record<string, unknown>;\n }\n return undefined;\n}\n\nexport function parseError(error: unknown): ParsedError {\n if (error instanceof Error) {\n const structured = error as StructuredError;\n return {\n message: error.message || 'An error occurred',\n status: toStatus(structured.status) ?? 500,\n why: pickString(structured.why),\n fix: pickString(structured.fix),\n link: pickString(structured.link),\n code: pickCode(structured.code),\n details: pickDetails(structured.details),\n raw: error,\n };\n }\n\n if (error && typeof error === 'object') {\n const err = error as ErrorLike;\n const data =\n err.data && typeof err.data === 'object'\n ? (err.data as Record<string, unknown>)\n : undefined;\n const nested =\n data?.data && typeof data.data === 'object'\n ? (data.data as Record<string, unknown>)\n : undefined;\n const payload = nested ?? data;\n\n const message =\n pickString(data?.statusText) ||\n pickString(data?.statusMessage) ||\n pickString(data?.message) ||\n pickString(payload?.statusText) ||\n pickString(payload?.statusMessage) ||\n pickString(payload?.message) ||\n pickString(err.message) ||\n 'An error occurred';\n\n const status =\n toStatus(payload?.status) ||\n toStatus(payload?.statusCode) ||\n toStatus(err.status) ||\n toStatus(err.statusCode) ||\n 500;\n\n return {\n message,\n status,\n why: pickString(payload?.why) || pickString(err.why),\n fix: pickString(payload?.fix) || pickString(err.fix),\n link: pickString(payload?.link) || pickString(err.link),\n code: pickCode(payload?.code) || pickCode(err.code),\n details: pickDetails(payload?.details) || pickDetails(err.details),\n raw: error,\n };\n }\n\n return {\n message: String(error),\n status: 500,\n raw: error,\n };\n}\n"]}