Skip to content

doowb/capture-stream

Repository files navigation

capture-stream NPM version Build Status

Capture stream output.

Install

Install with npm:

$ npm install capture-stream --save

Usage

var capture = require('capture-stream');
var restore = capture(process.stdout);

console.log('Hello, world!!!');
console.log('foo', 'bar');

var output = restore();
console.log(output);
//=> [ [ 'Hello, world!!!\n' ], [ 'foo bar\n' ] ]

Pass true to restore to return a string instead of an array of output.

var capture = require('capture-stream');
var restore = capture(process.stdout);

console.log('Hello, world!!!');
console.log('foo', 'bar');

var output = restore(true);
console.log(output);
//=> Hello, world!!!
//=> foo bar
//=>

This module has been built to be used in unit tests to easily capture output from process.stdout and process.stderr and test the results.

describe('awesome module', function () {
  function log () {
    console.log.apply(console, arguments);
  }

  it('should write "Hello, world!!!" to stdout', function () {
    var restore = capture(process.stdout);
    log('Hello, world!!!');
    var output = restore();
    assert.equal(output.length, 1);
    assert(output[0][0].indexOf('Hello, world!!!') === 0);
  });
});

API

Capture the output from a stream and store later.

Params

  • stream {Stream}: A stream to capture output from (e.g. process.stdout, process.stderr)
  • returns {Function} restore: function that restores normal output and returns an array of output.

Example

var restore = capture(process.stdout);
console.log('Hello, world!!!');
console.log('foo', 'bar');

var output = restore();
console.log(output);
//=> [ [ 'Hello, world!!!\n' ], [ 'foo bar\n' ] ]

Related projects

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Building docs

Generate readme and API documentation with [verb][]:

$ npm install verb && npm run docs

Or, if [verb][] is installed globally:

$ verb

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Brian Woodward

License

Copyright © 2016 Brian Woodward Released under the MIT license.


This file was generated by verb, v0.9.0, on March 19, 2016.