@iredium/butterfly
Version:
Express API Framework
33 lines (32 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseMiddleware = void 0;
var BaseMiddleware = /** @class */ (function () {
function BaseMiddleware(_a) {
var _b = _a === void 0 ? {} : _a, _c = _b.moduleName, moduleName = _c === void 0 ? 'butterfly' : _c;
this.moduleName = moduleName;
}
BaseMiddleware.prototype.handleMiddleware = function (ctx) {
var _this = this;
if (ctx === void 0) { ctx = {}; }
var moduleName = this.moduleName;
var middlewareClassName = this.constructor.name;
return function (req, res, next) {
var timingMark = req['locals']['timingMark'];
timingMark[moduleName + ":middlewares:" + middlewareClassName + ":start"] = process.hrtime();
function handlerNext(e) {
timingMark[moduleName + ":middlewares:" + middlewareClassName + ":end"] = process.hrtime();
next(e);
}
var middleware = _this.generate(ctx);
var promise = middleware(req, res, handlerNext);
if (promise && promise.catch) {
promise.catch(function (e) {
handlerNext(e);
});
}
};
};
return BaseMiddleware;
}());
exports.BaseMiddleware = BaseMiddleware;