2025-09-11 05:34:57 +00:00
|
|
|
export function err2String(err: unknown, stack = false): string {
|
|
|
|
|
try {
|
|
|
|
|
if (err instanceof Error) {
|
2026-05-14 05:35:38 +00:00
|
|
|
const cause = (err as { cause?: unknown }).cause;
|
2026-05-14 09:08:45 +00:00
|
|
|
const causeMsg =
|
|
|
|
|
cause instanceof Error
|
|
|
|
|
? cause.message
|
|
|
|
|
: cause != null
|
|
|
|
|
? typeof cause === "string"
|
|
|
|
|
? cause
|
|
|
|
|
: (JSON.stringify(cause) ?? "")
|
|
|
|
|
: "";
|
2025-09-11 05:34:57 +00:00
|
|
|
const stackStr = stack && err.stack ? err.stack : "";
|
|
|
|
|
const parts = [err.message];
|
|
|
|
|
if (causeMsg) parts.push(`more message: ${causeMsg}`);
|
|
|
|
|
if (stackStr) parts.push(stackStr);
|
|
|
|
|
return parts.join("\n");
|
|
|
|
|
}
|
|
|
|
|
const json = JSON.stringify(err);
|
|
|
|
|
return json ?? String(err);
|
|
|
|
|
} catch {
|
|
|
|
|
return String(err);
|
|
|
|
|
}
|
|
|
|
|
}
|