colorize tap output


colorize tap in a way that preserves its machine-readability


var test = require('tape');
var colorize = require('tap-colorize');
test(function (t) {
    t.equal(1+1, 2);
    t.deepEqual([ 1, 2, 3 ], [ 1, 4, 3 ]);

or use the command-line client:

$ node test/beep.js | tap-colorize


var colorize = require('tap-colorize')

Return a transform stream that adds colors to tap-specific lines. The colors are added at the end of the previous line so that the output is still machine-readable by a tap parser.

Options are:

opts.pass - the color to use for /^ok / lines opts.fail - the color to use for /^not ok / lines opts.info - the color to use for comments and version lines

Colors can be a hex code starting with a #, an array of rgb 0-255 integers, or a color name.

You can preface a color name with 'bright', 'dim'. 'reverse', or 'underscore'. Use an array for a color with a string prefix if you want to preface an rgb array color.


The ansi codes for the buffered output are placed into stream.mode in case you need to print out extra data before the next line comes in. This is useful for patching console.log() to show up in the ordinary terminal color and then setting the stream.mode back for the next line of output.

Some terminals can do this with '\x1b7' to push and '\x1b8' to pop the terminal context with attributes, but support for this feature is not widespread.

If there is no active mode, stream.mode is null.


There is also a command-line program in this package.

usage: tap-colorize OPTIONS
  Colorize TAP from INPUT, writing colorized data to OUTPUT.
  -i, --input    Read from INPUT. Default: stdin.
  -o, --output   Write to OUTPUT. Default: stdout.
  --info   Color of info lines.
  --pass   Color of /^ok / lines.
  --fail   Color of /^not ok/ lines.
  -h, --help     Show this help message.
  -v, --version  Print the current version of tap-parser.


With npm, to get the module do:

npm install tap-colorize

or to get the command-line program, do:

npm install -g tap-colorize