Skip to content

Commit 3cedcf8

Browse files
committed
chore: Simplify logger service
1 parent 8cb9599 commit 3cedcf8

13 files changed

Lines changed: 36 additions & 193 deletions

src/__mocks__/logger-mock-impl.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { BaseLogger } from '../adapters/logger';
1+
import { Logger } from "../interfaces";
22

33
export const log = jest.fn();
44

5-
export class LoggerMockImpl extends BaseLogger {
5+
export class LoggerMockImpl implements Logger {
66
log = log;
77
}

src/adapters/clients.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { type LogType } from "../interfaces";
12
import { type mastodon } from "../mastodon";
23
import {
34
createActionProxy,
@@ -11,7 +12,7 @@ import {
1112
type WebSocketConfigProps,
1213
} from "./config";
1314
import { HttpNativeImpl } from "./http";
14-
import { createLogger, type LogType } from "./logger";
15+
import { createLogger } from "./logger";
1516
import { SerializerNativeImpl } from "./serializers";
1617
import { WebSocketConnectorImpl } from "./ws";
1718

src/adapters/http/http-native-impl.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ export class HttpNativeImpl extends BaseHttp implements Http {
2828
const request = this.createRequest(params);
2929

3030
try {
31-
this.logger?.info(`↑ ${request.method} ${request.url}`);
32-
this.logger?.debug("\tbody", {
31+
this.logger?.log("info", `↑ ${request.method} ${request.url}`);
32+
this.logger?.log("debug", "\tbody", {
3333
encoding: params.encoding,
3434
body: params.body,
3535
});
@@ -47,15 +47,15 @@ export class HttpNativeImpl extends BaseHttp implements Http {
4747
}
4848

4949
const data = this.serializer.deserialize(encoding, text);
50-
this.logger?.info(`↓ ${request.method} ${request.url}`);
51-
this.logger?.debug("\tbody", text);
50+
this.logger?.log("info", `↓ ${request.method} ${request.url}`);
51+
this.logger?.log("debug", "\tbody", text);
5252

5353
return {
5454
headers: response.headers,
5555
data,
5656
};
5757
} catch (error) {
58-
this.logger?.debug(`HTTP failed`, error);
58+
this.logger?.log("debug", `HTTP failed`, error);
5959
throw await this.createError(error);
6060
}
6161
}

src/adapters/logger/base-logger.spec.ts

Lines changed: 0 additions & 131 deletions
This file was deleted.

src/adapters/logger/base-logger.ts

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/adapters/logger/factory.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { LogLevel, type LogType } from "./log-level";
1+
import { type LogType } from "../../interfaces";
2+
import { LogLevel } from "./log-level";
23
import { LoggerConsoleImpl } from "./logger-console-impl";
34

45
export const createLogger = (type?: LogType): LoggerConsoleImpl => {

src/adapters/logger/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
export * from "./base-logger";
21
export * from "./logger-console-impl";
32
export * from "./log-level";
43
export * from "./factory";

src/adapters/logger/log-level.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { type LogType } from "../../interfaces";
2+
13
/* eslint-disable unicorn/prefer-math-trunc */
24
const LOG_TYPES = Object.freeze({
35
DEBUG: 1 << 0,
@@ -6,8 +8,6 @@ const LOG_TYPES = Object.freeze({
68
ERROR: 1 << 3,
79
});
810

9-
export type LogType = "debug" | "info" | "warn" | "error";
10-
1111
export class LogLevel {
1212
private constructor(private readonly level: number) {}
1313

src/adapters/logger/logger-console-impl.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,28 @@ describe("LoggerConsoleImpl", () => {
99
it("logs debug", () => {
1010
const consoleDebug = jest.spyOn(console, "debug").mockImplementation();
1111
const logger = new LoggerConsoleImpl(LogLevel.from("debug"));
12-
logger.debug("message", { meta: "meta" });
12+
logger.log("debug", "message", { meta: "meta" });
1313
expect(consoleDebug).toHaveBeenCalledWith("message", { meta: "meta" });
1414
});
1515

1616
it("logs info", () => {
1717
const consoleInfo = jest.spyOn(console, "info").mockImplementation();
1818
const logger = new LoggerConsoleImpl(LogLevel.from("info"));
19-
logger.info("message", { meta: "meta" });
19+
logger.log("info", "message", { meta: "meta" });
2020
expect(consoleInfo).toHaveBeenCalledWith("message", { meta: "meta" });
2121
});
2222

2323
it("logs warn", () => {
2424
const consoleWarn = jest.spyOn(console, "warn").mockImplementation();
2525
const logger = new LoggerConsoleImpl(LogLevel.from("warn"));
26-
logger.warn("message", { meta: "meta" });
26+
logger.log("warn", "message", { meta: "meta" });
2727
expect(consoleWarn).toHaveBeenCalledWith("message", { meta: "meta" });
2828
});
2929

3030
it("logs error", () => {
3131
const consoleError = jest.spyOn(console, "error").mockImplementation();
3232
const logger = new LoggerConsoleImpl(LogLevel.from("error"));
33-
logger.error("message", { meta: "meta" });
33+
logger.log("error", "message", { meta: "meta" });
3434
expect(consoleError).toHaveBeenCalledWith("message", { meta: "meta" });
3535
});
3636
});

src/adapters/logger/logger-console-impl.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
/* eslint-disable no-console */
2-
import { type Logger } from "../../interfaces";
3-
import { BaseLogger } from "./base-logger";
4-
import { type LogType } from "./log-level";
2+
import { type Logger, type LogType } from "../../interfaces";
3+
import { type LogLevel } from "./log-level";
4+
5+
export class LoggerConsoleImpl implements Logger {
6+
constructor(private readonly level: LogLevel) {}
57

6-
export class LoggerConsoleImpl extends BaseLogger implements Logger {
78
log(type: LogType, message: string, meta: unknown): void {
9+
if (!this.level.satisfies(type)) {
10+
return;
11+
}
12+
813
const args = meta == undefined ? [message] : [message, meta];
914
switch (type) {
1015
case "debug": {

0 commit comments

Comments
 (0)