@nodearch/express
Version:
nodearch express server
49 lines • 2.06 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { Service } from '@nodearch/core';
import { ErrorRegistry } from '../errors/error-registry.js';
let MiddlewareFactory = class MiddlewareFactory {
constructor(errorRegistry) {
this.errorRegistry = errorRegistry;
}
createExpressMiddleware(middlewareInfo) {
return middlewareInfo.map(mw => {
return this.createMiddlewareHandler(mw);
});
}
defaultRouterMiddleware(componentInfo) {
return (req, res, next) => {
req.nodearch = {
controller: componentInfo.getInstance()
};
next();
};
}
createMiddlewareHandler(middlewareInfo) {
return (req, res, next) => {
const middlewareHandler = req.nodearch.controller[middlewareInfo.dependencyKey];
middlewareHandler
.handler({
args: { req, res },
options: middlewareInfo.options
})
.then(() => next())
.catch((err) => {
this.errorRegistry.handleError(err, res);
});
};
}
};
MiddlewareFactory = __decorate([
Service(),
__metadata("design:paramtypes", [ErrorRegistry])
], MiddlewareFactory);
export { MiddlewareFactory };
//# sourceMappingURL=middleware-factory.js.map