restpki-client
Version:
Classes to consume Lacuna Software REST PKI
38 lines (35 loc) • 853 B
JavaScript
let Readable = require('stream').Readable;
class ReadableStreamClone extends Readable {
constructor(readableStream) {
super();
readableStream.on('data', (chunk) => {
this.push(chunk);
});
readableStream.on('end', () => {
this.push(null);
});
readableStream.on('error', (err) => {
this.emit('error', err);
});
this._read = () => {
}; // _read is required but you can noop it
}
}
class StreamUtils {
static streamToBuffer(stream) {
return new Promise((resolve, reject) => {
let buffer = [];
stream.on('data', (chunk) => {
buffer.push(chunk);
});
stream.on('end', () => {
resolve(Buffer.concat(buffer));
});
stream.on('error', (err) => {
reject(err);
});
});
}
}
exports.StreamUtils = StreamUtils;
exports.ReadableStreamClone = ReadableStreamClone;