UNPKG

1.23 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.measureStreamLength = measureStreamLength;
7exports.readableFromStringOrBuffer = readableFromStringOrBuffer;
8exports.bufferStream = bufferStream;
9exports.blobToStream = blobToStream;
10
11var _stream = require("stream");
12
13async function measureStreamLength(stream) {
14 return new Promise((resolve, reject) => {
15 let length = 0;
16 stream.on('data', chunk => {
17 length += chunk;
18 });
19 stream.on('end', () => resolve(length));
20 stream.on('error', reject);
21 });
22}
23
24function readableFromStringOrBuffer(str) {
25 // https://stackoverflow.com/questions/12755997/how-to-create-streams-from-string-in-node-js
26 const stream = new _stream.Readable();
27 stream.push(str);
28 stream.push(null);
29 return stream;
30}
31
32async function bufferStream(stream) {
33 return new Promise((resolve, reject) => {
34 let buf = Buffer.from([]);
35 stream.on('data', data => {
36 buf = Buffer.concat([buf, data]);
37 });
38 stream.on('end', () => {
39 resolve(buf);
40 });
41 stream.on('error', reject);
42 });
43}
44
45function blobToStream(blob) {
46 if (blob instanceof _stream.Readable) {
47 return blob;
48 }
49
50 return readableFromStringOrBuffer(blob);
51}
\No newline at end of file