From 5104ef93e957818bcc3697cc77070f0247e41f6f Mon Sep 17 00:00:00 2001 From: Pascal Perrenoud Date: Wed, 15 May 2024 21:22:20 +0200 Subject: [PATCH] Implement Writer as interface --- index.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/index.ts b/index.ts index 02e7ad0..f28a646 100644 --- a/index.ts +++ b/index.ts @@ -1,10 +1,11 @@ -import logger, {Level, Writer, type WriterOptions} from 'log' +import logger, {Level, type Writer, type WriterOptions} from 'log' import {File} from 'logger-file' export * as log from 'log' export default logger -export class DailyFile extends Writer { +export class DailyFile implements Writer { + readonly _options: WriterOptions; private writer: File private readonly folder: string private current_date: Date = new Date() @@ -12,7 +13,7 @@ export class DailyFile extends Writer { public constructor(options: WriterOptions & {folder: string}) { const {folder, ...rest} = options - super(rest) + this._options = rest this.folder = folder this.writer = DailyFile.start(this.options, this.folder, this.current_date) @@ -24,11 +25,11 @@ export class DailyFile extends Writer { return new File({...options, path}) } - protected write(level: Level, ...data: any[]): void { + public log(level: Level, ...data: any[]): void { if (new Date().getDay() !== this.current_date.getDay()) { this.current_date = new Date() this.writer.end() - this.writer = DailyFile.start(this.options, this.folder, this.current_date) + this.writer = DailyFile.start(this._options, this.folder, this.current_date) } return this.writer.log(level, data) @@ -37,4 +38,8 @@ export class DailyFile extends Writer { public end() : number | Promise { return this.writer.end() } + + public get options() : WriterOptions { + return this._options + } }