UNPKG

gracenode-server

Version:
63 lines (51 loc) 1.5 kB
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); };