|
@@ -106,11 +106,12 @@ function getReadyPipeline(...streams) {
|
|
|
|
|
|
|
|
lastStream.removeListener('readable', handler)
|
|
lastStream.removeListener('readable', handler)
|
|
|
if (err) {
|
|
if (err) {
|
|
|
- return reject(
|
|
|
|
|
|
|
+ reject(
|
|
|
wrapError(err, 'error before stream became ready', {}, ReadError)
|
|
wrapError(err, 'error before stream became ready', {}, ReadError)
|
|
|
)
|
|
)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ resolve(lastStream)
|
|
|
}
|
|
}
|
|
|
- resolve(lastStream)
|
|
|
|
|
}
|
|
}
|
|
|
if (err) {
|
|
if (err) {
|
|
|
for (const stream of streams) {
|
|
for (const stream of streams) {
|
|
@@ -121,6 +122,9 @@ function getReadyPipeline(...streams) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ for (let index = 0; index < streams.length - 1; index++) {
|
|
|
|
|
+ streams[index + 1].on('close', () => streams[index].destroy())
|
|
|
|
|
+ }
|
|
|
pipeline(...streams).catch(handler)
|
|
pipeline(...streams).catch(handler)
|
|
|
lastStream.on('readable', handler)
|
|
lastStream.on('readable', handler)
|
|
|
})
|
|
})
|