UNPKG

485 BJavaScriptView Raw
1"use strict";
2
3//pipe a stream to another, streams might be promises
4
5function pipe(src, dest) {
6
7 if(src.then) {
8 return src.then(function(tmp) {
9 return pipe(tmp, dest);
10 });
11 }
12
13 if(dest.then) {
14 return dest.then(function(tmp) {
15 return pipe(src, tmp);
16 });
17 }
18
19 return new Promise(function(resolve, reject) {
20 src.pipe(dest);
21 src.on('error', reject);
22 dest.on('finish', resolve);
23 dest.on('close', resolve);
24 });
25
26}
27
28module.exports = pipe;