Sha256: f97f713a83538724513d50faa561ba6aa5fb452b81a9bf1dc937efc20fcafec7

Contents?: true

Size: 1.41 KB

Versions: 98

Compression:

Stored size: 1.41 KB

Contents

# 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.

Version data entries

98 entries across 96 versions & 13 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.18.0 test/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.18.2 test/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.16.1 test/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.15.2 test/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.18.4 test/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.18.1 test/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.14.0 test/dummy/node_modules/pumpify/node_modules/pump/README.md
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/pumpify/node_modules/pump/README.md
tang-0.2.1 spec/tang_app/node_modules/pumpify/node_modules/pump/README.md
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/pumpify/node_modules/pump/README.md
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/pumpify/node_modules/pump/README.md
ruby2js-4.0.4 lib/tasks/testrails/node_modules/pumpify/node_modules/pump/README.md
ruby2js-4.0.3 lib/tasks/testrails/node_modules/pumpify/node_modules/pump/README.md
tang-0.2.0 spec/tang_app/node_modules/pumpify/node_modules/pump/README.md
tang-0.1.0 spec/tang_app/node_modules/pumpify/node_modules/pump/README.md
tang-0.0.9 spec/tang_app/node_modules/pumpify/node_modules/pump/README.md
enju_library-0.3.8 spec/dummy/node_modules/pumpify/node_modules/pump/README.md
ilog-0.4.1 node_modules/pump/README.md