
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
promise-piping
Advanced tools
This module allows to convert stacked streams into one
Promise
object.
The piping object can be open-ended
PromiseReadable object or
PromiseWritable object or
close-ended.
The piping object can be build from streams: standard objects or promisified versions or another piping objects.
This module requires Node >= 4. For Node < 6 --harmony flag is required.
npm install promise-piping
const {
PromiseReadablePiping,
PromiseWritablePiping,
PromisePiping
} = require('promise-piping')
or:
const PromisePiping = require('promise-piping')
Typescript:
import {
PromiseReadablePiping,
PromiseWritablePiping,
PromisePiping
} from 'promise-piping'
or:
import PromisePiping from 'promise-piping'
const readablePiping = new PromiseReadablePiping(readable, duplex...)
const writablePiping = new PromiseWritablePiping(duplex..., writable)
const piping = new PromisePiping(readable, duplex..., writable)
Example:
const fs = require('fs')
const zlib = require('zlib')
const filein = fs.createReadStream('/etc/hosts')
const fileout = fs.createWriteStream('/tmp/hosts.gz')
const gzip = zlib.createGzip()
const gunzip = zlib.createGunzip()
const readablePiping = new PromiseReadablePiping(filein, gzip, gunzip)
const writablePiping = new PromiseWritablePiping(gzip, fileout)
const piping = new PromisePiping(filein, gzip, fileout)
const result = await piping.once(event)
This method returns Promise which is fulfilled when last stream (first
stream for end event) emits event. The result of this event is returned
or undefined value if stream is already ended.
The promise will reject on error. Errors in piping are propagated from intermediate streams to the first stream and the last stream. It means that operation on piping will be rejected if an error occurs in any of its streams.
Example:
await piping.once('finish')
piping.destroy()
This method calls destroy method on stream and cleans up all own handlers.
PromiseReadable,
PromiseWritable,
PromiseDuplex,
PromiseSocket.
Copyright (c) 2017-2018 Piotr Roszatycki mailto:piotr.roszatycki@gmail.com
FAQs
Return promise for streams piping
We found that promise-piping demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.