@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.
25 lines (22 loc) • 734 B
text/typescript
import {
executeSynthesizerMiddlewareOneByOne,
flattenMiddlewareChain,
} from "./helpers";
import { Synthesizer, SynthesizerMiddlewareChain } from "./types";
/**
* Crafts a new error synthesizer with the given middleware chain.
*
* @param {SynthesizerMiddlewareChain} middlewareChain - The middleware chain of transmuters.
* @returns {Synthesizer} The crafted synthesizer.
*/
export const craftErrorSynthesizer = (
middlewareChain: SynthesizerMiddlewareChain
): Synthesizer => {
const newSynthesizer: Synthesizer = {
middlewareChain: flattenMiddlewareChain(middlewareChain),
synthesize(err) {
return executeSynthesizerMiddlewareOneByOne(err, this.middlewareChain);
},
};
return newSynthesizer;
};