@omnimedia/omnitool
Version:
open source video processing tools
32 lines • 818 B
JavaScript
import { ExposedError } from "@e280/renraku";
export function exposeError(error) {
if (error instanceof ExposedError)
return error;
const exposed = new ExposedError(errorToString(error));
if (error instanceof Error)
exposed.stack = error.stack;
return exposed;
}
export function exposeErrors(fn) {
return async (...args) => {
try {
return await fn(...args);
}
catch (error) {
throw exposeError(error);
}
};
}
function errorToString(error) {
if (error instanceof Error)
return error.message;
if (typeof error === "string")
return error;
try {
return JSON.stringify(error) ?? String(error);
}
catch {
return String(error);
}
}
//# sourceMappingURL=expose-errors.js.map