UNPKG

@iredium/butterfly

Version:
33 lines (32 loc) 1.33 kB
"use strict"; 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;