UNPKG

autotel

Version:
64 lines (63 loc) 2.31 kB
// src/parse-error.ts function toStatus(value) { if (typeof value === "number" && Number.isFinite(value)) return value; if (typeof value === "string") { const n = Number(value); if (Number.isFinite(n)) return n; } return void 0; } function pickString(value) { return typeof value === "string" && value.length > 0 ? value : void 0; } function pickCode(value) { if (typeof value === "string" || typeof value === "number") return value; return void 0; } function pickDetails(value) { if (value && typeof value === "object" && value.constructor === Object) { return value; } return void 0; } function parseError(error) { if (error instanceof Error) { const structured = error; return { message: error.message || "An error occurred", status: toStatus(structured.status) ?? 500, why: pickString(structured.why), fix: pickString(structured.fix), link: pickString(structured.link), code: pickCode(structured.code), details: pickDetails(structured.details), raw: error }; } if (error && typeof error === "object") { const err = error; const data = err.data && typeof err.data === "object" ? err.data : void 0; const nested = data?.data && typeof data.data === "object" ? data.data : void 0; const payload = nested ?? data; const message = pickString(data?.statusText) || pickString(data?.statusMessage) || pickString(data?.message) || pickString(payload?.statusText) || pickString(payload?.statusMessage) || pickString(payload?.message) || pickString(err.message) || "An error occurred"; const status = toStatus(payload?.status) || toStatus(payload?.statusCode) || toStatus(err.status) || toStatus(err.statusCode) || 500; return { message, status, why: pickString(payload?.why) || pickString(err.why), fix: pickString(payload?.fix) || pickString(err.fix), link: pickString(payload?.link) || pickString(err.link), code: pickCode(payload?.code) || pickCode(err.code), details: pickDetails(payload?.details) || pickDetails(err.details), raw: error }; } return { message: String(error), status: 500, raw: error }; } export { parseError }; //# sourceMappingURL=chunk-J7VGRIAJ.js.map //# sourceMappingURL=chunk-J7VGRIAJ.js.map