promise-piping
v1.0.1
Published
Return promise for streams piping
Downloads
2,118
Readme
promise-piping
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.
Requirements
This module requires Node >= 4. For Node < 6 --harmony
flag is required.
Installation
npm install promise-piping
Usage
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'
constructor
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)
once
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')
destroy
piping.destroy()
This method calls destroy method on stream and cleans up all own handlers.
See also
PromiseReadable
,
PromiseWritable
,
PromiseDuplex
,
PromiseSocket
.
License
Copyright (c) 2017-2018 Piotr Roszatycki mailto:[email protected]