Home > @rushstack/terminal > StderrLineTransform
StderrLineTransform class
This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
StderrLineTransform
normalizes lines that mix characters from stdout
and stderr
, so that each output line is routed entirely to stdout
or stderr
.
Signature:
export declare class StderrLineTransform extends TerminalTransform
Extends: TerminalTransform
Remarks
IMPORTANT: This transform assumes that its input has been normalized to use "\n"
newlines.
IMPORTANT: This transform does not produce realtime output, because lines are buffered until a newline character is encountered.
Suppose that a poorly behaved process produces output like this:
process.stderr.write('An error occurred, cleaning up');
process.stdout.write('.'); // (delay)
process.stdout.write('.'); // (delay)
process.stdout.write('.');
process.stdout.write('\n');
process.stderr.write('The process completed with errors\n');
When stdout
and stderr
are combined on the console, the mistake in the output would not be noticeable:
An error occurred, cleaning up...
The process completed with errors
However, if we discard stdout
, then stderr
is malformed:
An error occurred, cleaning upThe process completed with errors
Tooling scripts can introduce these sorts of problems via edge cases that are difficult to find and fix.
StderrLineTransform
normalizes the output so that if a combined line contains any stderr
characters, then the entire line is routed to stderr
. Later, if we discard stdout
, then the output will preserve the appropriate context:
An error occurred, cleaning up...
The process completed with errors
Constructors
Constructor | Modifiers | Description |
---|---|---|
(constructor)(options) | (BETA) Constructs a new instance of the StderrLineTransform class |
Properties
Property | Modifiers | Type | Description |
---|---|---|---|
newline | readonly | string | (BETA) |
Methods
Method | Modifiers | Description |
---|---|---|
onClose() | protected | (BETA) |
onWriteChunk(chunk) | protected | (BETA) |