ConstOpen a labelled progress bar nested directly under whatever scope is currently on top of the active-scope stack. Renders as a single line at child indent.
Like Logger.group, this is a pure-push operation: it does not
close any sibling already on the stack. Close with bar.end(), or let
an enclosing group's end() / Logger.unwindAll pop it.
The bar's label.
Expected number of ticks (or absolute total when using Bar.update).
A handle for advancing and closing the bar.
Emit a debug message. Shown only at verbose verbosity.
Message parts.
Emit an error message. Always shown, regardless of verbosity. Triggers an automatic unwind of all open scopes, marking each as failed.
Message parts.
Open a named, timed scope. Returns a Group handle. Call end()
to close it. Group children indent automatically based on call depth.
Pass { index, total } to render the group as part of a numbered
series (e.g. [2/5] name). Both fields must be supplied together.
The group name.
Optionaloptions: { index?: number; total?: number }Optional configuration.
Optionalindex?: number1-based position in the numbered series.
Optionaltotal?: numberTotal length of the numbered series.
A handle for closing the group and writing nested log entries.
Emit an info message indented under the innermost active scope.
Message parts (joined with a space).
Emit a logical unit of pipeable output (typically one line, or a
multi-line block treated as a single unit). The renderer terminates
each unit with a newline, so callers should not include a trailing
\n. Always shown, regardless of verbosity.
The text to emit (without a trailing newline).
Replace the active renderer. Embedders install their own renderer here
to consume LogEvents; the default renderer is a no-op. Renderers
receive every scope/bar lifecycle event regardless of verbosity, so
progress UIs can rely on scopeStart/scopeEnd and barStart/barEnd
to manage their state.
The renderer to install.
Set verbosity: quiet (errors and warnings), normal (default),
verbose (includes debug).
The verbosity level.
Close every open scope and bar, optionally marking them as failed.
Use this from an embedder's catch when an exception is being swallowed
(rather than rethrown into a logger.error() call), to prevent
dangling scopes from corrupting subsequent output.
When true, mark every closed scope as having failed.
Emit a warning indented under the innermost active scope.
Message parts.
Public logger surface.
Open named, timed scopes with Logger.group. Pass
{ index, total }to render the group as part of a numbered series. Indeterminate progress is reported with Logger.bar. Free-form messages route throughinfo/warn/error/debug, indented under whatever is on top of the active-scope stack.Both
groupandbarare pure-push operations: opening a new scope simply places it on top of the stack without auto-closing siblings, so call order directly determines nesting. Close scopes withhandle.end()after the body. Callers that route failures through Logger.error get scope cleanup for free; embedders that swallow exceptions should call Logger.unwindAll from their catch to close every still-open scope.