@blaasvaer/frmwrk
Version:
My personal Node framework
47 lines (35 loc) • 1.18 kB
JavaScript
const utils = require('@blaasvaer/frmwrk/utils');
/**
* Install Controllers
*/
function installControllers ( config ) {
let controllers_dir = config.root + '/controllers/';
return utils.readdirAsync( controllers_dir )
// .then( utils.sleep( Math.floor( ( Math.random() * 1000 ) + 1000 ) ) ) // DEBUGGING
.then(function( files ) {
const controller_files = [];
files.forEach( file => {
// Skip file if name start with an underscore
if ( file.charAt(0) === '_' || file === '.DS_Store' )
return;
let promise = new Promise( function( resolve, reject ) {
let controller = require( controllers_dir + file );
if ( controller ) {
if ( typeof controller.install === 'function' ) {
// Add controller if it exports install
this.controllers = {};
this.controllers[ file.split('.')[0] ] = controller;
// Trigger install script for controller
controller.install.call();
}
resolve( file );
} else {
reject( "Loading of controller: " + file + " failed!" );
}
});
controller_files.push( promise );
});
return Promise.all( controller_files );
});
}
module.exports = installControllers;