output-interceptor

4.1.0 • Public • Published

output-interceptor

GitSpo Mentions Travis build status Coveralls NPM version Canonical Code Style Twitter Follow

Intercepts stdout/ stderr.

Implementation

This module uses domain to capture asynchronous function output.

Read Capturing stdout/ stderr in Node.js using Domain module.

Usage

import {
  createOutputInterceptor
} from 'output-interceptor';
 
const interceptOutput = createOutputInterceptor();
 
const main = async () => {
  const result = await interceptOutput(() => {
    console.log('foo');
    console.error('bar');
 
    return Promise.resolve('baz');
  });
 
  result === 'baz';
 
  interceptOutput.output === 'foo\nbar\n';
};
 
main();
 

API

/**
 * @property interceptStderr Default: true.
 * @property interceptStdout Default: true.
 * @property stripAnsi Default: true.
 */
export type OutputInterceptorUserConfigurationType = {|
  +interceptStderr?: boolean,
  +interceptStdout?: boolean,
  +stripAnsi?: boolean
|};
 
/**
 * @returns Intercepted output.
 */
type FlushType = () => string;
 
/**
 * @property output Output produced during the executing of the `routine`.
 */
export type OutputInterceptorType = {|
  <T>(routine: () => Promise<T> | T): Promise<T>,
  output: ''
|};
 
createOutputInterceptor(userConfiguration?: OutputInterceptorUserConfigurationType): OutputInterceptorType;
 

Package Sidebar

Install

npm i output-interceptor

Weekly Downloads

162

Version

4.1.0

License

BSD-3-Clause

Unpacked Size

21.6 kB

Total Files

19

Last publish

Collaborators

  • gajus