Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

hook-stream

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hook-stream

Hook into writes of a stream

  • 2.1.2
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
5
decreased by-44.44%
Maintainers
1
Weekly downloads
 
Created
Source

hook-stream

Allows listening to a given stream's writes through a new, readable stream.

Useful for listening to a 3rd party library's writes to stdout or stderr.

install

npm install --save hook-stream

API

hookStream(stream: Stream, options?: Object): [unhook: Function, readable: Stream]

Takes a stream to hook into and optional options object.

Returns a tuple of unhook function and a newly created readable stream that emits writes to stream.

example

Direct writes to stderr to stdout.

const hookStream = require('hook-stream')
const map = require('through2-map')
const treis = require('treis')

const [ unhook, stream ] = hookStream(process.stderr)

stream
  .pipe(map((x) => `STDOUT ${x}`))
  .pipe(process.stdout)

console.error('foo')
process.stderr.write('bar')
// treis prints function input and output to stderr
treis(x => x)(1)

unhook()

output

% node examples/1.js
STDOUT foo
foo
STDOUT bar
bar
STDOUT λ1 x: 1
λ1 x: 1
STDOUT λ1 => 1
λ1 => 1

caveat

This method does not work if a third party lib saves a reference to "original" stream.write (e.g. process.stderr.write) before hookStream is called.

// somewhere else, maybe in some lib's code
const log = process.stderr.write.bind(process.stderr)

// .....

// won't work because hookStream replaces process.stderr.write with its own
// function, but log already has reference to the original
const [ unhook, stream ] = hookStream(process.stderr)

Keywords

FAQs

Package last updated on 18 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc