mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import type { LoggerFactory } from '../logging/LoggerFactory';
|
|
import { getLoggerFor, setGlobalLoggerFactory } from '../logging/LogUtil';
|
|
import type { HttpServerFactory } from '../server/HttpServerFactory';
|
|
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,
|
|
base: string,
|
|
port: number,
|
|
) {
|
|
this.serverFactory = serverFactory;
|
|
this.loggerFactory = loggerFactory;
|
|
this.initializer = initializer;
|
|
this.base = base;
|
|
this.port = port;
|
|
}
|
|
|
|
/**
|
|
* Set up a server.
|
|
*/
|
|
public async setup(): Promise<string> {
|
|
setGlobalLoggerFactory(this.loggerFactory);
|
|
|
|
await this.initializer.handleSafe();
|
|
|
|
this.serverFactory.startServer(this.port);
|
|
return this.base;
|
|
}
|
|
}
|