mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-13 18:21:27 +00:00
34 lines
865 B
TypeScript
34 lines
865 B
TypeScript
export function formatErrorMessage(err: unknown): string {
|
|
if (err instanceof Error) {
|
|
let formatted = err.message || err.name || "Error";
|
|
let cause: unknown = err.cause;
|
|
const seen = new Set<unknown>([err]);
|
|
while (cause && !seen.has(cause)) {
|
|
seen.add(cause);
|
|
if (cause instanceof Error) {
|
|
if (cause.message) {
|
|
formatted += ` | ${cause.message}`;
|
|
}
|
|
cause = cause.cause;
|
|
continue;
|
|
}
|
|
if (typeof cause === "string") {
|
|
formatted += ` | ${cause}`;
|
|
}
|
|
break;
|
|
}
|
|
return formatted;
|
|
}
|
|
if (typeof err === "string") {
|
|
return err;
|
|
}
|
|
if (typeof err === "number" || typeof err === "boolean" || typeof err === "bigint") {
|
|
return String(err);
|
|
}
|
|
try {
|
|
return JSON.stringify(err);
|
|
} catch {
|
|
return Object.prototype.toString.call(err);
|
|
}
|
|
}
|