1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.measureStreamLength = measureStreamLength;
|
7 | exports.readableFromStringOrBuffer = readableFromStringOrBuffer;
|
8 | exports.bufferStream = bufferStream;
|
9 | exports.blobToStream = blobToStream;
|
10 |
|
11 | var _stream = require("stream");
|
12 |
|
13 | async 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 |
|
24 | function readableFromStringOrBuffer(str) {
|
25 |
|
26 | const stream = new _stream.Readable();
|
27 | stream.push(str);
|
28 | stream.push(null);
|
29 | return stream;
|
30 | }
|
31 |
|
32 | async 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 |
|
45 | function blobToStream(blob) {
|
46 | if (blob instanceof _stream.Readable) {
|
47 | return blob;
|
48 | }
|
49 |
|
50 | return readableFromStringOrBuffer(blob);
|
51 | } |
\ | No newline at end of file |