co-pipe

1.0.0 • Public • Published

co-pipe

Build Status Coverage Status JavaScript Style Guide dependencies Status devDependencies Status

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

Readme

Keywords

Package Sidebar

Install

npm i co-pipe

Weekly Downloads

0

Version

1.0.0

License

MIT

Last publish

Collaborators

  • gerhut