UNPKG

readable-stream-clone

Version:
42 lines (34 loc) 1.16 kB
import { Readable, Writable, ReadableOptions } from 'stream'; export class ReadableStreamClone extends Readable { constructor(readableStream: Readable, options?: ReadableOptions){ super(options); readableStream.on("data", (chunk) => { this.push(chunk); }); readableStream.on('end', () => { this.push(null); }); readableStream.on("error", (err) => { this.emit("error", err); }); } public _read(){} } export const promisifyWriteStreams = async (writableStreams : Writable[]) => { return Promise.all(writableStreams.map((writable : Writable) => { return promisifyWriteStream(writable); })) } export const promisifyWriteStream = async (writableStream : Writable) => { return new Promise((resolve, reject) => { writableStream.on('finish', () => { resolve(null); }) writableStream.on('error', (err) => { reject(err); }) }) } export default ReadableStreamClone; // NodeJS support module.exports.default = ReadableStreamClone;