gracenode-server
Version:
server module for gracenode framework.
63 lines (51 loc) • 1.5 kB
JavaScript
var gn = require('gracenode');
var router = require('server-router');
var logger = gn.log.create('server-router');
var EventEmitter = require('EventEmitter').EventEmitter;
var config;
var map = {
reroute: {},
controller: {}
};
module.exports.readConfig = function (configIn) {
config = configIn;
// create reroute map
if (config && config.reroute && config.reroute.length) {
for (var i = 0, len = config.reroute.length; i < len; i++) {
var item = config.reroute[i];
map.reroute[item.from] = item.to;
}
router.setReroutes(map.reroute);
logger.verbose('rerouting mapped:', map.reroute);
}
};
module.exports.setup = function (cb) {
gn.lib.walkDir(ocnfig.controllerPath, function (error, list) {
if (error) {
return cb(error);
}
for (var i = 0, len = list.length; i < len; i++) {
var file = list[i].file;
var paths = file.substring(0, file.lastIndexOf('.'));
paths = paths.replace(config.controllerPath, '').split('/');
var cmap = map.controller;
for (var j = 0, jen = paths.length; j < jen; j++) {
if (!cmap[paths[j]]) {
if (j !== jen - 1) {
cmap[paths[j]] = {};
} else {
cmap[paths[j]] = true;
}
}
}
}
if (!Object.keys(map.controller).length) {
logger.warn('there are no controllers in', config.controllerPath);
}
logger.verbose('controllers and mathods mapped:', map.controller);
cb();
});
};
module.exports.getControllerMap = function () {
return gn.lib.cloneObj(map.controller);
};