purescript-installer
Version:
Installs the PureScript compiler
65 lines (44 loc) • 1.93 kB
Markdown
# cancelable-pump
[](https://www.npmjs.com/package/cancelable-pump)
[](https://travis-ci.org/shinnn/cancelable-pump)
[](https://coveralls.io/github/shinnn/cancelable-pump?branch=master)
Cancelable [`pump`](https://github.com/mafintosh/pump)
```javascript
const {createReadStream, createWriteStream} = require('cancelable-pump');
const cancelablePump = require('cancelable-pump');
cancelablePump(createReadStream('1GB-file.txt'), createWriteStream('dest0'), () => {
statSync('dest0').size; //=> 1000000000;
});
const cancel = cancelablePump(createReadStream('1GB-file.txt'), createWriteStream('dest1'), () => {
statSync('dest1').size; //=> 263192576, or something else smaller than 1000000000
});
setTimeout(() => {
cancel();
}, 1000);
```
## Installation
[Use](https://docs.npmjs.com/cli/install) [npm](https://docs.npmjs.com/getting-started/what-is-npm).
```
npm install cancelable-pump
```
## API
```javascript
const cancelablePump = require('cancelable-pump');
```
### cancelablePump(*stream0* [, *stream1*, *stream2*, ...] [, *callback*])
*stream0*, *stream1*, *stream2*, ...: [`Stream`](https://nodejs.org/api/stream.html#stream_stream)
*callback*: `Function`
Return: `Function`
### cancelablePump(*streams* [, *callback*])
*streams*: `Array<Stream>`
*callback*: `Function`
Return: `Function`
The API is almost the same as `pump`'s. The only difference is *cancelable-pump* returns a function to destroy all streams without passing any errors to the callback.
```javascript
const cancel = cancelablePump([src, transform, anotherTransform, dest], err => {
err; //=> undefined
});
cancel();
```
## License
[ISC License](./LICENSE) © 2017 - 2018 Shinnosuke Watanabe