UNPKG

@ocubist/error-alchemy

Version:

A powerful Node.js error-handling-framework with custom error types for easy debugging, enhanced error management, strong zod-support and useful quality-of-life-functionality for asserting and validating values.

31 lines (27 loc) 887 B
import { Severity } from "../../severity/types"; import { TransmutedError } from "../../transmuted-errors/TransmutedError"; type AnyLogger = (err: unknown) => void; export type CraftErrorLoggerProps = { [key in Severity]?: AnyLogger; } & { default: AnyLogger }; /** * Crafts a new error logger with the given logger properties. * * @param {CraftErrorLoggerProps} props - The logger properties. * @returns {(err: unknown) => void} The crafted error logger function. */ export const craftErrorLogger = ( props: CraftErrorLoggerProps ): ((err: unknown) => void) => { return (err: unknown) => { if (err instanceof TransmutedError) { const severity = err.severity; const severityLogger = props[severity]; if (severityLogger !== undefined) { severityLogger(err); } else props.default(err); } else { props.default(err); } }; };