oberknecht-utils
Version:
Utils for oberknecht packages
28 lines (23 loc) • 575 B
text/typescript
import { log } from "./log";
export function returnErr(
e: Error | Object,
logerr?: Boolean,
fullstack?: Boolean
) {
if (!e) return "";
// @ts-ignore
let r2 = e?.error ?? e;
let r = "";
let rfull = "";
if (r2.stack) {
let appendStack = (e2) => {
r += (r.length > 0 ? " (caused by:) " : "") + (e2?.message ?? e2);
rfull += (rfull.length > 0 ? "\nCause: " : "") + (e2?.stack ?? e2);
if (e2?.cause) return appendStack(e2.cause);
return;
};
appendStack(r2);
}
if (logerr) log(2, r);
return fullstack ? rfull : r;
}