59 lines
1.9 KiB
JavaScript
59 lines
1.9 KiB
JavaScript
import 'dotenv/config';
|
|
import { spawn } from "child_process";
|
|
|
|
console.debug = function(){
|
|
if (process.env.debug){
|
|
console.log.apply(console, arguments);
|
|
}
|
|
}
|
|
|
|
import App from './app/App.js';
|
|
|
|
const modules = [
|
|
{name: 'Config', path:'app/Config.js'},
|
|
{name: 'Db', path:'app/Db.js'},
|
|
{name: 'AccessManager', path:'app/AccessManager.js'},
|
|
|
|
{name: 'GameObjectsManager', path:'app/bl/GameObjectsManager.js'},
|
|
{name: 'ScenariosManager', path:'app/bl/ScenariosManager.js'},
|
|
{name: 'GamesManager', path:'app/bl/GamesManager.js'},
|
|
{name: 'UserManager', path:'app/bl/UserManager.js'},
|
|
|
|
{name: 'WebServer', path:'app/WebServer.js'},
|
|
|
|
{name: 'AssetController', path: 'controllers/AssetController.js'},
|
|
{name: 'GameObjectsController', path:'controllers/api/GameObjectsController.js'},
|
|
{name: 'ScenariosController', path:'controllers/api/ScenariosController.js'},
|
|
{name: 'GamesController', path:'controllers/api/GamesController.js'},
|
|
{name: 'UsersController', path:'controllers/api/UsersController.js'},
|
|
]
|
|
|
|
process.on('uncaughtException', err => {
|
|
console.error(err, 'Uncaught Exception thrown');
|
|
}).on('unhandledRejection', (reason, p) => {
|
|
console.error(reason, 'Unhandled Rejection at Promise', p);
|
|
});
|
|
|
|
if (process.env.NODE_ENV == 'development'){
|
|
console.log('Running in development mode');
|
|
process.stdin.resume();
|
|
process.stdin.on('data', async (data) => {
|
|
const input = data.toString().trim();
|
|
if (input === 'r') {
|
|
process.stdin.pause();
|
|
await app.stop();
|
|
console.log('Restarting...');
|
|
spawn(process.argv.shift(), process.argv, {
|
|
cwd: process.cwd(),
|
|
stdio: "inherit"
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
const app = new App();
|
|
await app.importModules(modules);
|
|
await app.init();
|
|
|
|
console.log(`Starting...`);
|
|
app.start(); |