Skip to main content

InteractiveConsoleLogger

@webda/workout


Class: InteractiveConsoleLogger

Defined in: packages/workout/src/loggers/interactiveconsole.ts:208

Interactive console logger with spinner animations and progress bars Automatically switches to basic ConsoleLogger when not in a TTY

Example​

const output = new WorkerOutput();
new InteractiveConsoleLogger(output);
output.startActivity("Processing");
await doWork();
output.stopActivity("success", "Done!");

Extends​

Constructors​

Constructor​

new InteractiveConsoleLogger(output, level?, format?): InteractiveConsoleLogger

Defined in: packages/workout/src/loggers/interactiveconsole.ts:222

Create a new interactive console logger

Parameters​

output​

WorkerOutput

WorkerOutput instance to listen to

level?​

WorkerLogLevel = ...

Minimum log level to display (default: LOG_LEVEL env var or "INFO")

format?​

string = ConsoleLogger.defaultFormat

sprintf format string for log lines

Returns​

InteractiveConsoleLogger

Overrides​

ConsoleLogger.constructor

Properties​

format​

format: string

Defined in: packages/workout/src/loggers/console.ts:44

Active sprintf format string used for output

Inherited from​

ConsoleLogger.format


input​

input: Promise<string> & object

Defined in: packages/workout/src/loggers/interactiveconsole.ts:210

Active inquirer prompt promise (with cancellation support)

Type Declaration​

cancel​

cancel: () => void

Returns​

void


logStream​

logStream: WritableStream

Defined in: packages/workout/src/loggers/console.ts:46

Stream receiving the log lines

Inherited from​

ConsoleLogger.logStream


spinner​

spinner: SimpleProgress

Defined in: packages/workout/src/loggers/interactiveconsole.ts:214

Active spinner/progress indicator


defaultFormat​

static defaultFormat: string = "%(d)s [%(l)s] %(m)s"

Defined in: packages/workout/src/loggers/console.ts:40

Default sprintf format string (date, level, message)

Inherited from​

ConsoleLogger.defaultFormat


defaultFormatWithLine​

static defaultFormatWithLine: string = "%(d)s [%(l)s] %(m)s (%(f)s:%(ll)d:%(c)d %(ff)s)"

Defined in: packages/workout/src/loggers/console.ts:42

Extended format string that also prints caller file, line, column and function

Inherited from​

ConsoleLogger.defaultFormatWithLine

Methods​

importInquirer()​

protected importInquirer(): Promise<any>

Defined in: packages/workout/src/loggers/interactiveconsole.ts:302

Import the inquirer module (extracted for testability)

Returns​

Promise<any>

the inquirer prompts module


onInput()​

onInput(msg): Promise<void>

Defined in: packages/workout/src/loggers/interactiveconsole.ts:312

Handle input request messages using @inquirer/prompts Creates an interactive prompt with validation

Parameters​

msg​

WorkerMessage

Input request message

Returns​

Promise<void>

Throws​

Error if @inquirer/prompts is not installed


onMessage()​

onMessage(msg): void

Defined in: packages/workout/src/loggers/interactiveconsole.ts:238

Route a WorkerOutput message to the appropriate handler Falls back to the basic ConsoleLogger when not running in an interactive TTY

Parameters​

msg​

WorkerMessage

The message to handle

Returns​

void

Overrides​

ConsoleLogger.onMessage


onProgress()​

onProgress(msg): Promise<void>

Defined in: packages/workout/src/loggers/interactiveconsole.ts:266

Handle progress-related messages (start, update, stop) Manages spinner animation and displays completion status with duration

Parameters​

msg​

WorkerMessage

Progress message to handle

Returns​

Promise<void>


display()​

static display(msg, format?, stream?): void

Defined in: packages/workout/src/loggers/console.ts:145

Display a formatted and colored log message

Writes to the stream directly rather than through console, so a patched console (see patchConsole) cannot loop back into the logger.

Parameters​

msg​

WorkerMessage

Message to display

format?​

string = ConsoleLogger.defaultFormat

Format string for output

stream?​

WritableStream = process.stdout

Stream to write to (default: stdout)

Returns​

void

Inherited from​

ConsoleLogger.display


format()​

static format(msg, format?): string

Defined in: packages/workout/src/loggers/console.ts:160

Format a log message using sprintf-style placeholders Supports: %(d)s (date), %(l)s (level), %(m)s (message), %(f)s (file), %(ll)d (line), %(c)d (column), %(ff)s (function)

Parameters​

msg​

WorkerMessage

Message to format

format?​

string = ConsoleLogger.defaultFormat

Format string with placeholders

Returns​

string

Formatted log string

Inherited from​

ConsoleLogger.format


getColor()​

static getColor(level): (s) => string

Defined in: packages/workout/src/loggers/console.ts:82

Get the color function for a given log level

Parameters​

level​

WorkerLogLevel

The log level to get color for

Returns​

A function that applies the appropriate color to a string

(s) => string

Inherited from​

ConsoleLogger.getColor


handleMessage()​

static handleMessage(msg, level, format?, stream?): void

Defined in: packages/workout/src/loggers/console.ts:100

Handle log and title messages with level filtering

Parameters​

msg​

WorkerMessage

Message to process

level​

WorkerLogLevel

Current log level for filtering

format?​

string = ConsoleLogger.defaultFormat

Format string for log output

stream?​

WritableStream = process.stdout

Stream for log lines (default: stdout)

Returns​

void

Inherited from​

ConsoleLogger.handleMessage


writeOutput()​

static writeOutput(msg): void

Defined in: packages/workout/src/loggers/console.ts:132

Write a raw output message, unformatted, to stdout

Parameters​

msg​

WorkerMessage

Output message to write

Returns​

void

Inherited from​

ConsoleLogger.writeOutput