@d3vtool/ex-frame
Version:
This library enhances Express.js by providing a more organized structure for web API projects, along with improved control and error handling capabilities.
32 lines (31 loc) • 901 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.asyncHandler = void 0;
exports.Middlewares = Middlewares;
exports.ErrorHandler = ErrorHandler;
function Middlewares(...handlers) {
return function (targetFn, _propertyKey, descriptor) {
if (descriptor?.value) {
descriptor.value["handlers"] = handlers;
}
else {
targetFn["handlers"] = handlers;
}
};
}
function ErrorHandler(handlers) {
return function (targetFn, _propertyKey, descriptor) {
if (descriptor?.value) {
descriptor.value["errorHandler"] = handlers;
}
else {
targetFn["errorHandler"] = handlers;
}
};
}
const asyncHandler = (fn) => (req, res, next) => {
Promise.resolve(fn(req, res, next)).catch((err) => {
next(err);
});
};
exports.asyncHandler = asyncHandler;