Hook and modify stdout/stderr
JavaScript
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.editorconfig
.gitattributes
.gitignore
.npmrc
.travis.yml
index.js
license
package.json
readme.md
test.js

readme.md

hook-std Build Status

Hook and modify stdout and stderr

Install

$ npm install hook-std

Usage

const assert = require('assert');
const hookStd = require('hook-std');

const promise = hookStd.stdout(output => {
	promise.unhook();
	assert.strictEqual(output.trim(), 'unicorn');
});

console.log('unicorn');
await promise;

You can also unhook using the second transform method parameter:

const promise = hookStd.stdout((output, unhook) => {
	unhook();
	assert.strictEqual(output.trim(), 'unicorn');
});

console.log('unicorn');
await promise;

API

hookStd([options], transform)

Hook stdout and stderr.

Returns a Promise with a unhook() method which, when called, unhooks both stdout and stderr and resolves the Promise with an empty result.

hookStd.stdout([options], transform)

Hook stdout.

Returns a Promise with a unhook() method which, when called, resolves the Promise with an empty result.

hookStd.stderr([options], transform)

Hook stderr.

Returns a Promise with a unhook() method which, when called, resolves the Promise with an empty result.

options

silent

Type: boolean
Default: true

Suppress stdout/stderr output.

once

Type: boolean
Default: false

Automatically unhooks after the first call.

transform

Type: Function

Receives stdout/stderr as the first argument and the unhook method as the second argument. Return a string to modify it. Optionally, when in silent mode, you may return a boolean to influence the return value of .write(...).

License

MIT © Sindre Sorhus