Files
2026-01-24 21:25:04 +02:00

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();