You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.4 KiB
56 lines
1.4 KiB
# pump |
|
|
|
pump is a small node module that pipes streams together and destroys all of them if one of them closes. |
|
|
|
``` |
|
npm install pump |
|
``` |
|
|
|
[![build status](http://img.shields.io/travis/mafintosh/pump.svg?style=flat)](http://travis-ci.org/mafintosh/pump) |
|
|
|
## What problem does it solve? |
|
|
|
When using standard `source.pipe(dest)` source will _not_ be destroyed if dest emits close or an error. |
|
You are also not able to provide a callback to tell when then pipe has finished. |
|
|
|
pump does these two things for you |
|
|
|
## Usage |
|
|
|
Simply pass the streams you want to pipe together to pump and add an optional callback |
|
|
|
``` js |
|
var pump = require('pump') |
|
var fs = require('fs') |
|
|
|
var source = fs.createReadStream('/dev/random') |
|
var dest = fs.createWriteStream('/dev/null') |
|
|
|
pump(source, dest, function(err) { |
|
console.log('pipe finished', err) |
|
}) |
|
|
|
setTimeout(function() { |
|
dest.destroy() // when dest is closed pump will destroy source |
|
}, 1000) |
|
``` |
|
|
|
You can use pump to pipe more than two streams together as well |
|
|
|
``` js |
|
var transform = someTransformStream() |
|
|
|
pump(source, transform, anotherTransform, dest, function(err) { |
|
console.log('pipe finished', err) |
|
}) |
|
``` |
|
|
|
If `source`, `transform`, `anotherTransform` or `dest` closes all of them will be destroyed. |
|
|
|
## License |
|
|
|
MIT |
|
|
|
## Related |
|
|
|
`pump` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
|
|
|