@mvx/mvc
Version:
@mvx/mvc is mvc framework on server, base on koa, @tsdi frameworks
66 lines (64 loc) • 2.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MiddlewareRegister = void 0;
var tslib_1 = require("tslib");
var ioc_1 = require("@tsdi/ioc");
var MvcMiddlewares_1 = require("./MvcMiddlewares");
/**
* middleware register.
*
* @export
* @class MiddlewareRegister
*/
var MiddlewareRegister = /** @class */ (function () {
function MiddlewareRegister() {
this.map = new Map();
}
MiddlewareRegister.prototype.set = function (key, val) {
this.map.set(key, val);
};
/**
* setup middleware.
*
* @param {ICoreInjector} injector
* @memberof MiddlewareRegister
*/
MiddlewareRegister.prototype.setup = function (injector) {
this.map.forEach(function (meta, middle) {
var middlewares = injector.getInstance(MvcMiddlewares_1.MvcMiddlewares);
if (meta.regIn) {
var comp = meta.regIn;
if (!injector.has(comp)) {
injector.register(comp);
}
middlewares = injector.get(comp);
}
if (meta.before) {
middlewares.useBefore(middle, meta.before);
}
else if (meta.after) {
middlewares.useAfter(middle, meta.after);
}
else {
middlewares.use(middle);
}
});
};
MiddlewareRegister.ρAnn = function () {
return { "name": "MiddlewareRegister", "params": { "set": ["key", "val"], "setup": ["injector"] } };
};
MiddlewareRegister.ρNPT = true;
tslib_1.__decorate([
tslib_1.__param(0, ioc_1.Inject(ioc_1.INJECTOR)),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object]),
tslib_1.__metadata("design:returntype", void 0)
], MiddlewareRegister.prototype, "setup", null);
MiddlewareRegister = tslib_1.__decorate([
ioc_1.Singleton(),
tslib_1.__metadata("design:paramtypes", [])
], MiddlewareRegister);
return MiddlewareRegister;
}());
exports.MiddlewareRegister = MiddlewareRegister;
//# sourceMappingURL=../sourcemaps/middlewares/MiddlewareRegister.js.map