Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 4x 4x 4x 4x 4x 4x 4x 50x 2x 3x 35x 4x | import type { PrinterWriteStream } from '../interfaces/printer.interfaces'
import { Printer } from './printer'
export enum DebugMode {
NONE,
DEBUG,
}
/**
* Just a simple logger which holds no state. Try to prevent this when giving feedback to the user.
* Rather try to use a stateful logging like Spinner, Progress or Status
*/
export class Logger extends Printer<Logger> {
public constructor(stdio: PrinterWriteStream) {
super(stdio)
}
private debugMode = DebugMode.NONE
protected self(): Logger {
return this
}
public setDebugMode(mode: DebugMode): Logger {
this.debugMode = mode
return this
}
/**
* No state, no stop
*/
public stop(): Logger {
return this
}
public info(text: string): Logger {
return this.clearLine()
.write(this.INFO_FN(text))
.newline()
}
public error(text: string): Logger {
return this.clearLine()
.write(this.ERROR_FN(text))
.newline()
}
public warn(text: string): Logger {
return this.clearLine()
.write(this.WARN_FN(text))
.newline()
}
public debug(text: string): Logger {
return this.debugMode !== DebugMode.NONE
? this.clearLine()
.write(this.DEBUG_FN(text))
.newline()
: this.self()
}
}
export const logger = new Logger(process.stdout)
|