Как собрать два потока в один?

Есть такая функция:

function test() {
  const gzip = createGzip();
  const write = fs.createWriteStream('./2.zip');
}

Необходимо из нее вернуть один поток, который будет включать и gzip и write в себе, что бы можно было передавать в него так:

  const singleStream = test();
  const read = fs.createReadStream('./1.png');
  read.pipe(singleStream)
  или
  pipeline(read, singleStream)

Ответы (1 шт):

Автор решения: Lasna

Сделал так:

import { PassThrough } from 'stream';

export function merge(...writableStreams) {
    const merged = new PassThrough();

    writableStreams.forEach((writableStream) => {
        merged.pipe(writableStream);
    });

    return merged;
}
→ Ссылка