Added dependency injection
This commit is contained in:
@@ -10,14 +10,15 @@ import * as express from 'express';
|
||||
import { GuildManager } from '../Components/Guild/GuildManager';
|
||||
import { ItemManager } from '../Components/Item/ItemManager';
|
||||
import { RaidManager } from '../Components/Raid/RaidManager';
|
||||
import { CharacterManager } from '../Components/User/CharacterManager';
|
||||
import { LoginManager } from '../Components/User/LoginManager';
|
||||
import { CharacterManager } from '../Components/Character/CharacterManager';
|
||||
import { LoginManager } from '../Components/Login/LoginManager';
|
||||
import { RootComponent } from '../Injector/ServiceDecorator';
|
||||
import { TableDefinitionExporter } from '../Types/Interfaces';
|
||||
import { AdminConf, TableDefiniton } from '../Types/Types';
|
||||
import { RPCConfigLoader } from '../Components/RPCConfigLoader';
|
||||
import { FrontworkComponent } from '../Types/FrontworkComponent';
|
||||
import { IAdmin } from './Interface';
|
||||
import { Injector } from '../Injector/Injector';
|
||||
|
||||
|
||||
const logger = getLogger("admin", 'debug')
|
||||
@@ -64,11 +65,16 @@ implements TableDefinitionExporter, IAdmin {
|
||||
await this.makeKnex()
|
||||
this.startWebsocket()
|
||||
await Promise.all( this.frontworkComponents.map(c => c.initialize?c.initialize():undefined ))
|
||||
logger.debug(this.frontworkComponents.length+" components initialized")
|
||||
this.startWebserver()
|
||||
}
|
||||
|
||||
stop(){
|
||||
process.exit(0);
|
||||
Promise.race([
|
||||
Promise.all( this.frontworkComponents.map(c => c.stop?c.stop():undefined )),
|
||||
new Promise((res, rej) => { setTimeout(res, 250);})
|
||||
]).catch(e => logger.warn(e))
|
||||
.finally(() => { process.exit(0) })
|
||||
}
|
||||
|
||||
protected configChangeHandler = (conf:AdminConf, key?:string) => {
|
||||
@@ -95,6 +101,7 @@ implements TableDefinitionExporter, IAdmin {
|
||||
this.rpcServer = new RPCServer(20000, [
|
||||
...this.frontworkComponents,
|
||||
])
|
||||
logger.debug("Websocket up on", 20000)
|
||||
}
|
||||
|
||||
private startWebserver(){
|
||||
@@ -183,6 +190,5 @@ implements TableDefinitionExporter, IAdmin {
|
||||
|
||||
process.on( 'SIGINT', function() {
|
||||
logger.info("Shutting down from SIGINT (Ctrl-C)" );
|
||||
// some other closing procedures go here
|
||||
process.exit(0);
|
||||
Injector.resolve<FrontworkAdmin>(FrontworkAdmin).stop()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user