simple-node-framework
Version:
Simple nodeJs framework that provides easy ways to use log, cache, database, session, redis, share request scope and more.
44 lines (37 loc) • 1.26 kB
JavaScript
const glob = require('glob');
const path = require('path');
const Loggable = require('./base/loggable');
const config = require('./config');
class Route extends Loggable {
constructor() {
super({
module: 'SNF Route'
});
this.config = config;
this.glob = glob;
this.path = path;
}
// importing routes for all the modules
importModuleRoutes() {
this.glob.sync(path.join(process.cwd(), (this.config.dir || ''), 'api/modules/**/route.+(js|ts)')).forEach((file) => {
const moduleName = this.path.basename(this.path.dirname(file));
this.log.debug(`Importing [${moduleName}] routes from [${file}]`);
require(this.path.resolve(file)); // eslint-disable-line
});
}
// retreive route information
// ex: { baseRoute: '/api', module: 'customer', full: '/api/customer' }
info(routeFile) {
const moduleName = this.path.basename(this.path.dirname(routeFile));
const full = `${this.config.app.baseRoute}/${moduleName}`;
return {
full,
baseRoute: this.config.app.baseRoute,
module: moduleName
};
}
}
module.exports = {
class: Route,
instance: new Route()
};