refactor: Split off LoggerInitializer.

This commit is contained in:
Ruben Verborgh
2020-12-07 22:16:30 +01:00
committed by Joachim Van Herwegen
parent 8fbb4f592e
commit b0ecf1c1d8
6 changed files with 49 additions and 16 deletions

View File

@@ -0,0 +1,19 @@
import type { LoggerFactory } from '../logging/LoggerFactory';
import { setGlobalLoggerFactory } from '../logging/LogUtil';
import { Initializer } from './Initializer';
/**
* Sets up the global logger factory.
*/
export class LoggerInitializer extends Initializer {
private readonly loggerFactory: LoggerFactory;
public constructor(loggerFactory: LoggerFactory) {
super();
this.loggerFactory = loggerFactory;
}
public async handle(): Promise<void> {
setGlobalLoggerFactory(this.loggerFactory);
}
}

View File

@@ -1,5 +1,3 @@
import type { LoggerFactory } from '../logging/LoggerFactory';
import { getLoggerFor, setGlobalLoggerFactory } from '../logging/LogUtil';
import type { HttpServerFactory } from '../server/HttpServerFactory';
import type { Initializer } from './Initializer';
@@ -7,23 +5,19 @@ import type { Initializer } from './Initializer';
* Invokes all logic to setup a server.
*/
export class Setup {
protected readonly logger = getLoggerFor(this);
private readonly serverFactory: HttpServerFactory;
private readonly loggerFactory: LoggerFactory;
private readonly initializer: Initializer;
private readonly base: string;
private readonly port: number;
public constructor(
serverFactory: HttpServerFactory,
loggerFactory: LoggerFactory,
initializer: Initializer,
serverFactory: HttpServerFactory,
base: string,
port: number,
) {
this.serverFactory = serverFactory;
this.loggerFactory = loggerFactory;
this.initializer = initializer;
this.serverFactory = serverFactory;
this.base = base;
this.port = port;
}
@@ -32,10 +26,7 @@ export class Setup {
* Set up a server.
*/
public async setup(): Promise<string> {
setGlobalLoggerFactory(this.loggerFactory);
await this.initializer.handleSafe();
this.serverFactory.startServer(this.port);
return this.base;
}