Socket
Socket
Sign inDemoInstall

mute-stream

Package Overview
Dependencies
0
Maintainers
6
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    mute-stream

Bytes go in, but they don't come out (when muted).


Version published
Maintainers
6
Install size
6.28 kB
Created

Package description

What is mute-stream?

The mute-stream package is a Node.js module that allows you to mute and unmute writable streams, such as process.stdout or any other stream. This can be particularly useful for hiding user input during password prompts or suppressing output for clean logging.

What are mute-stream's main functionalities?

Muting and unmuting a stream

This feature allows you to mute the output of a stream so that data written to it does not appear on the terminal or the piped destination. You can then unmute the stream to resume normal output.

const MuteStream = require('mute-stream');
const ms = new MuteStream();

ms.pipe(process.stdout);
ms.write('This will be displayed.');
ms.mute();
ms.write('This will not be displayed.');
ms.unmute();
ms.write('This will be displayed again.');

Muting and unmuting with a boolean

This feature provides an alternative way to mute and unmute the stream by passing a boolean value to the mute method.

const MuteStream = require('mute-stream');
const ms = new MuteStream();

ms.pipe(process.stdout);
ms.mute(true);
ms.write('This will not be displayed.');
ms.mute(false);
ms.write('This will be displayed.');

Setting up a prompt with muted input

This feature is useful for creating command-line prompts where you want to hide the user's input, such as password fields.

const MuteStream = require('mute-stream');
const readline = require('readline');

const ms = new MuteStream();
ms.pipe(process.stdout);

const rl = readline.createInterface({
  input: process.stdin,
  output: ms
});

rl.question('Enter your password: ', (password) => {
  ms.mute();
  console.log(`Your password is: ${password}`);
  rl.close();
});

Other packages similar to mute-stream

Changelog

Source

1.0.0 (2022-12-12)

⚠️ BREAKING CHANGES

  • this package is now compatible with the following semver range for node: ^14.17.0 || ^16.13.0 || >=18.0.0

Features

  • bb1e248 add template-oss (@lukekarrys)

Bug Fixes

  • 72b4956 replace substr with slice (@lukekarrys)

Readme

Source

mute-stream

Bytes go in, but they don't come out (when muted).

This is a basic pass-through stream, but when muted, the bytes are silently dropped, rather than being passed through.

Usage

const MuteStream = require('mute-stream')

const ms = new MuteStream(options)

ms.pipe(process.stdout)
ms.write('foo') // writes 'foo' to stdout
ms.mute()
ms.write('bar') // does not write 'bar'
ms.unmute()
ms.write('baz') // writes 'baz' to stdout

// can also be used to mute incoming data
const ms = new MuteStream
input.pipe(ms)

ms.on('data', function (c) {
  console.log('data: ' + c)
})

input.emit('data', 'foo') // logs 'foo'
ms.mute()
input.emit('data', 'bar') // does not log 'bar'
ms.unmute()
input.emit('data', 'baz') // logs 'baz'

Options

All options are optional.

  • replace Set to a string to replace each character with the specified string when muted. (So you can show **** instead of the password, for example.)

  • prompt If you are using a replacement char, and also using a prompt with a readline stream (as for a Password: ***** input), then specify what the prompt is so that backspace will work properly. Otherwise, pressing backspace will overwrite the prompt with the replacement character, which is weird.

ms.mute()

Set muted to true. Turns .write() into a no-op.

ms.unmute()

Set muted to false

ms.isTTY

True if the pipe destination is a TTY, or if the incoming pipe source is a TTY.

Other stream methods...

The other standard readable and writable stream methods are all available. The MuteStream object acts as a facade to its pipe source and destination.

Keywords

FAQs

Last updated on 13 Dec 2022

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc