• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# mute-stream
2
3Bytes go in, but they don't come out (when muted).
4
5This is a basic pass-through stream, but when muted, the bytes are
6silently dropped, rather than being passed through.
7
8## Usage
9
10```javascript
11var MuteStream = require('mute-stream')
12
13var ms = new MuteStream(options)
14
15ms.pipe(process.stdout)
16ms.write('foo') // writes 'foo' to stdout
17ms.mute()
18ms.write('bar') // does not write 'bar'
19ms.unmute()
20ms.write('baz') // writes 'baz' to stdout
21
22// can also be used to mute incoming data
23var ms = new MuteStream
24input.pipe(ms)
25
26ms.on('data', function (c) {
27  console.log('data: ' + c)
28})
29
30input.emit('data', 'foo') // logs 'foo'
31ms.mute()
32input.emit('data', 'bar') // does not log 'bar'
33ms.unmute()
34input.emit('data', 'baz') // logs 'baz'
35```
36
37## Options
38
39All options are optional.
40
41* `replace` Set to a string to replace each character with the
42  specified string when muted.  (So you can show `****` instead of the
43  password, for example.)
44
45* `prompt` If you are using a replacement char, and also using a
46  prompt with a readline stream (as for a `Password: *****` input),
47  then specify what the prompt is so that backspace will work
48  properly.  Otherwise, pressing backspace will overwrite the prompt
49  with the replacement character, which is weird.
50
51## ms.mute()
52
53Set `muted` to `true`.  Turns `.write()` into a no-op.
54
55## ms.unmute()
56
57Set `muted` to `false`
58
59## ms.isTTY
60
61True if the pipe destination is a TTY, or if the incoming pipe source is
62a TTY.
63
64## Other stream methods...
65
66The other standard readable and writable stream methods are all
67available.  The MuteStream object acts as a facade to its pipe source
68and destination.
69