forked from zhurui/management
69 lines
1.6 KiB
Markdown
69 lines
1.6 KiB
Markdown
|
# 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
|
||
|
|
||
|
```javascript
|
||
|
var MuteStream = require('mute-stream')
|
||
|
|
||
|
var 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
|
||
|
var 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.
|