Converts a text stream to a stream of strings and EscapeCode
objects
var ansiStream = require('ansi-stream');
var EscapeCode = ansiStream.EscapeCode;
stream = ansiStream();
stream.write('\x1b[31mabc\x1b[39m');
stream.end();
assert.deepEqual(
stream.read(),
new EscapeCode('\x1b[31m')
);
assert.strictEqual(
stream.read(),
'abc'
);
assert.deepEqual(
stream.read(),
new EscapeCode('\x1b[39m')
);
Creates a new stream instance, with an optional buffer size.
Optional
Type: number
Handles the (rare) case where an escape code sequence might span two chunks.
If it does not detect a complete escape code in the chunk, but there is a
control character (\u001b
, or \u009b
), it will buffer up to maxBuffer
characters
until the next chunk.
If you are sure that your input will NOT split escape code sequences across chunks, you can set this to zero for improved performance.
Can be used by streams further down the chain to discover if a given chunk is an EscapeCode or not. See escape-code for more details.
stream.on('data', function(chunk) {
if (chunk instanceof ansiStream.EscapeCode) {
// process the escape code
} else {
// process a chunk of plain old text.
}
});
MIT © James Talmage