co-pipe
v1.0.0
Published
Wait the completion of piping.
Downloads
4
Readme
co-pipe
Wait the completion of piping.
Install
$ npm install co-pipe
Usage
Vanilla Promise
const fs = require('fs')
const pipe = require('co-pipe')
const reader = fs.createReadStream('foo.txt')
const writer = fs.createWriteStream('bar.txt')
pipe(reader, writer).then(
() => console.log('File successfully copied.'),
(error) => console.log(`Something was wrong with ${
error.stream === reader ? 'reader' : 'writer'
}`)
)
Use with co
const fs = require('fs')
const co = require('co')
const pipe = require('co-pipe')
co(function * () {
const reader = fs.createReadStream('foo.txt')
const writer = fs.createWriteStream('bar.txt')
try {
yield pipe(reader, writer)
console.log('File successfully copied.')
} catch (error) {
console.log(`Something was wrong with ${
error.stream === reader ? 'reader' : 'writer'
}`)
}
})
Use with koa
const fs = require('fs')
const koa = require('koa')
const pipe = require('co-pipe')
const app = koa()
app.use(function * () {
const writer = fs.createWriteStream('foo.txt')
yield pipe(this.req, writer)
this.body = 'Request successfully written to foo.txt'
})
Multiple Streams
const fs = require('fs')
const zlib = require('zlib')
const pipe = require('co-pipe')
const reader = fs.createReadStream('foo.txt')
const gzip = zlib.createGzip()
const writer = fs.createWriteStream('bar.txt.gz')
pipe(reader, gzip, writer).then(
() => console.log('File successfully gzipped.'),
(error) => console.log(`Something was wrong with ${
error.stream === reader ? 'reader' :
(error.stream === gzip ? 'gzip' : 'writer')
}`)
)
License
MIT