pup

pup

Pipe and unpipe streams for node

Showing:

Popularity

Downloads/wk

6

GitHub Stars

1

Maintenance

Last Commit

9yrs ago

Contributors

0

Package

Dependencies

0

Size (min+gzip)

0.3KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

Pipe and Unpipe streams

Overview

As of node 0.8.x, there is no way to unpipe streams. This module attemps to fill the gap by providing a pipe(source, destination[, options]) and unpipe(source, destination) functions working in tandem, to do piping and unpiping of streams.

Usage

Install with

npm install pup

Two functions are provided:

  • pipe(source, destination[, options]) : to be used to setup a pipe from source to destination. Same signature as the Stream#pipe method.
  • unpipe(source, destination) : remove the pipe between source and destination. If there are many of those, only the first one is removed. Return true on successful removal, false otherwise.

Example

var fs = require('fs')
var pup = require('pup')

var source = fs.readFileStream('test')
var wrong_destination = fs.readWriteStream('test2')
var destination = fs.readWriteStream('test.bak')

// Pipe to one destination
source.pause()
pup.pipe(source, wrong_destination)

// Then remove it and pipe to another
pup.unpipe(source, wrong_destination)
pup.pipe(source, destination)

// Copy the file test.js, which should only end up in test.bak
source.resume()

Restrictions

This is a bit of a hack that relies on the assumption that there is the same cleanup() listener setup by the Stream#pipe method for the end event on the source and on the destination.

License

MIT

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100