mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
refactor: Split off LoggerInitializer.
This commit is contained in:
parent
8fbb4f592e
commit
b0ecf1c1d8
@ -7,9 +7,6 @@
|
|||||||
"Setup:_serverFactory": {
|
"Setup:_serverFactory": {
|
||||||
"@id": "urn:solid-server:default:ServerFactory"
|
"@id": "urn:solid-server:default:ServerFactory"
|
||||||
},
|
},
|
||||||
"Setup:_loggerFactory": {
|
|
||||||
"@id": "urn:solid-server:default:LoggerFactory"
|
|
||||||
},
|
|
||||||
"Setup:_initializer": {
|
"Setup:_initializer": {
|
||||||
"@id": "urn:solid-server:default:Initializer"
|
"@id": "urn:solid-server:default:Initializer"
|
||||||
},
|
},
|
||||||
@ -24,6 +21,12 @@
|
|||||||
"@id": "urn:solid-server:default:Initializer",
|
"@id": "urn:solid-server:default:Initializer",
|
||||||
"@type": "AllVoidCompositeHandler",
|
"@type": "AllVoidCompositeHandler",
|
||||||
"AllVoidCompositeHandler:_handlers": [
|
"AllVoidCompositeHandler:_handlers": [
|
||||||
|
{
|
||||||
|
"@type": "LoggerInitializer",
|
||||||
|
"LoggerInitializer:_loggerFactory": {
|
||||||
|
"@id": "urn:solid-server:default:LoggerFactory"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"@type": "AclInitializer",
|
"@type": "AclInitializer",
|
||||||
"AclInitializer:_baseUrl": {
|
"AclInitializer:_baseUrl": {
|
||||||
|
@ -16,6 +16,7 @@ export * from './authorization/WebAclAuthorizer';
|
|||||||
export * from './init/AclInitializer';
|
export * from './init/AclInitializer';
|
||||||
export * from './init/CliRunner';
|
export * from './init/CliRunner';
|
||||||
export * from './init/Initializer';
|
export * from './init/Initializer';
|
||||||
|
export * from './init/LoggerInitializer';
|
||||||
export * from './init/Setup';
|
export * from './init/Setup';
|
||||||
|
|
||||||
// LDP/HTTP/Metadata
|
// LDP/HTTP/Metadata
|
||||||
|
19
src/init/LoggerInitializer.ts
Normal file
19
src/init/LoggerInitializer.ts
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,3 @@
|
|||||||
import type { LoggerFactory } from '../logging/LoggerFactory';
|
|
||||||
import { getLoggerFor, setGlobalLoggerFactory } from '../logging/LogUtil';
|
|
||||||
import type { HttpServerFactory } from '../server/HttpServerFactory';
|
import type { HttpServerFactory } from '../server/HttpServerFactory';
|
||||||
import type { Initializer } from './Initializer';
|
import type { Initializer } from './Initializer';
|
||||||
|
|
||||||
@ -7,23 +5,19 @@ import type { Initializer } from './Initializer';
|
|||||||
* Invokes all logic to setup a server.
|
* Invokes all logic to setup a server.
|
||||||
*/
|
*/
|
||||||
export class Setup {
|
export class Setup {
|
||||||
protected readonly logger = getLoggerFor(this);
|
|
||||||
private readonly serverFactory: HttpServerFactory;
|
private readonly serverFactory: HttpServerFactory;
|
||||||
private readonly loggerFactory: LoggerFactory;
|
|
||||||
private readonly initializer: Initializer;
|
private readonly initializer: Initializer;
|
||||||
private readonly base: string;
|
private readonly base: string;
|
||||||
private readonly port: number;
|
private readonly port: number;
|
||||||
|
|
||||||
public constructor(
|
public constructor(
|
||||||
serverFactory: HttpServerFactory,
|
|
||||||
loggerFactory: LoggerFactory,
|
|
||||||
initializer: Initializer,
|
initializer: Initializer,
|
||||||
|
serverFactory: HttpServerFactory,
|
||||||
base: string,
|
base: string,
|
||||||
port: number,
|
port: number,
|
||||||
) {
|
) {
|
||||||
this.serverFactory = serverFactory;
|
|
||||||
this.loggerFactory = loggerFactory;
|
|
||||||
this.initializer = initializer;
|
this.initializer = initializer;
|
||||||
|
this.serverFactory = serverFactory;
|
||||||
this.base = base;
|
this.base = base;
|
||||||
this.port = port;
|
this.port = port;
|
||||||
}
|
}
|
||||||
@ -32,10 +26,7 @@ export class Setup {
|
|||||||
* Set up a server.
|
* Set up a server.
|
||||||
*/
|
*/
|
||||||
public async setup(): Promise<string> {
|
public async setup(): Promise<string> {
|
||||||
setGlobalLoggerFactory(this.loggerFactory);
|
|
||||||
|
|
||||||
await this.initializer.handleSafe();
|
await this.initializer.handleSafe();
|
||||||
|
|
||||||
this.serverFactory.startServer(this.port);
|
this.serverFactory.startServer(this.port);
|
||||||
return this.base;
|
return this.base;
|
||||||
}
|
}
|
||||||
|
20
test/unit/init/LoggerInitializer.test.ts
Normal file
20
test/unit/init/LoggerInitializer.test.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import { LoggerInitializer } from '../../../src/init/LoggerInitializer';
|
||||||
|
import type { LoggerFactory } from '../../../src/logging/LoggerFactory';
|
||||||
|
import { setGlobalLoggerFactory } from '../../../src/logging/LogUtil';
|
||||||
|
|
||||||
|
jest.mock('../../../src/logging/LogUtil');
|
||||||
|
|
||||||
|
describe('LoggerInitializer', (): void => {
|
||||||
|
const loggerFactory = {} as LoggerFactory;
|
||||||
|
|
||||||
|
let initializer: LoggerInitializer;
|
||||||
|
beforeAll(async(): Promise<void> => {
|
||||||
|
initializer = new LoggerInitializer(loggerFactory);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('sets the global logger factory.', async(): Promise<void> => {
|
||||||
|
await initializer.handle();
|
||||||
|
expect(setGlobalLoggerFactory).toHaveBeenCalledTimes(1);
|
||||||
|
expect(setGlobalLoggerFactory).toHaveBeenCalledWith(loggerFactory);
|
||||||
|
});
|
||||||
|
});
|
@ -1,6 +1,5 @@
|
|||||||
import type { Initializer } from '../../../src/init/Initializer';
|
import type { Initializer } from '../../../src/init/Initializer';
|
||||||
import { Setup } from '../../../src/init/Setup';
|
import { Setup } from '../../../src/init/Setup';
|
||||||
import { VoidLoggerFactory } from '../../../src/logging/VoidLoggerFactory';
|
|
||||||
import type { HttpServerFactory } from '../../../src/server/HttpServerFactory';
|
import type { HttpServerFactory } from '../../../src/server/HttpServerFactory';
|
||||||
|
|
||||||
describe('Setup', (): void => {
|
describe('Setup', (): void => {
|
||||||
@ -12,7 +11,7 @@ describe('Setup', (): void => {
|
|||||||
} as any;
|
} as any;
|
||||||
|
|
||||||
beforeAll(async(): Promise<void> => {
|
beforeAll(async(): Promise<void> => {
|
||||||
const setup = new Setup(serverFactory, new VoidLoggerFactory(), initializer, 'http://localhost:3000/', 3000);
|
const setup = new Setup(initializer, serverFactory, 'http://localhost:3000/', 3000);
|
||||||
await setup.setup();
|
await setup.setup();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user