Implement Writer as interface

This commit is contained in:
2024-05-15 21:15:02 +02:00
parent 55cc0c9d77
commit 4fbe13b5d6
+8 -6
View File
@@ -1,9 +1,10 @@
import logger, {Writer, Level} from 'log'
import logger, {type Writer, Level, type WriterOptions} from 'log'
export * as log from 'log'
export default logger
export class Counter extends Writer {
export class Counter implements Writer {
readonly _options: WriterOptions = {minLevel: Level.DEBUG, with_color: false}
private readonly calls = {
debug: 0,
trace: 0,
@@ -12,11 +13,9 @@ export class Counter extends Writer {
error: 0,
}
public constructor() {
super({minLevel: Level.DEBUG, with_color: false});
}
public constructor() {}
protected write(level: Level, ..._data: any[]): void {
log(level: Level, ...data: any[]): void {
switch (level) {
case Level.DEBUG: this.calls.debug++; break
case Level.TRACE: this.calls.trace++; break
@@ -26,6 +25,9 @@ export class Counter extends Writer {
default: throw new Error(`Unknown level: ${level}`)
}
}
get options() : WriterOptions {
return this._options
}
public get count() {
return this.calls