JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1568868
  • Score
    100M100P100Q197792F
  • License MIT

Hook and modify stdout and stderr

Package Exports

  • hook-std

Readme

hook-std

Hook and modify stdout and stderr

Install

npm install hook-std

Usage

import assert from 'node:assert';
import {hookStdout} from 'hook-std';

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

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

You can also unhook using the second transform method parameter:

import assert from 'node:assert';
import {hookStdout} from 'hook-std';

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

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

API

hookStd(options?, transform)

Hook streams in streams option, or stdout and stderr if none are specified.

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

hookStdout(options?, transform)

Hook stdout.

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

hookStderr(options?, transform)

Hook stderr.

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

options

Type: object

silent

Type: boolean
Default: true

Suppress stdout/stderr output.

once

Type: boolean
Default: false

Automatically unhook after the first call.

streams

Type: stream.Writable[]
Default: [process.stdout, process.stderr]

The writable streams to hook. This can be useful for libraries allowing users to configure a writable stream to write to.

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(…).