@o-galaxy/ether
Version:
Rest Api Framework
31 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = require("express");
const controller_processor_1 = require("./controller-processor");
const guard_processor_1 = require("./guard-processor");
function moduleProcessor(moduleClass) {
const params = moduleClass.prototype['$module_params'];
let { path, guards = [], controllers = [],
// providers = [],
errorHandlers = [], modules = [], } = params;
let router = express_1.Router();
router = guards.reduce((accRouter, guard) => guard_processor_1.gourdProcessor(accRouter, guard), router);
router = controllers.reduce((accRouter, controller) => controller_processor_1.controllerProcessor(accRouter, controller), router);
router = modules.reduce((accRouter, subModule) => subModuleProcessor(accRouter, subModule), router);
router = errorHandlers.reduce((accRouter, errorHandler) => errorHandlerProcessor(accRouter, errorHandler), router);
if (path != undefined && path != "" && typeof path == 'string') {
router = express_1.Router().use(path, router);
}
return router;
}
exports.moduleProcessor = moduleProcessor;
function subModuleProcessor(router, moduleClass) {
const moduleRouter = moduleProcessor(moduleClass);
return router.use(moduleRouter);
}
function errorHandlerProcessor(router, errorHandler) {
return Array.isArray(errorHandler) ?
router.use(errorHandler[0], errorHandler[1]) :
router.use(errorHandler);
}
//# sourceMappingURL=module-processor.js.map