@o-galaxy/ether
Version:
Rest Api Framework
27 lines • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const controller_def_container_1 = require("../../../inner/controller-def-container");
function TryCatch(errorHandler = (e, next) => next(e)) {
return (targetPrototype, propertyName, propertyDescriptor) => {
// apply only on methods defined in a Controller
let routerDef = targetPrototype['$router_def'];
if (routerDef == undefined) {
targetPrototype['$router_def'] = new controller_def_container_1.ControllerDefContainer();
routerDef = targetPrototype['$router_def'];
}
routerDef.addWrapper(_tryCatchHandler(errorHandler), propertyName);
return propertyDescriptor;
};
}
exports.TryCatch = TryCatch;
function _tryCatchHandler(errorHandler) {
return function (currentRequestHandler, req, res, next) {
try {
currentRequestHandler(req, res, next).catch(e => next(e));
}
catch (error) {
errorHandler(error, next);
}
};
}
//# sourceMappingURL=index.js.map