source: frontend/node_modules/get-stream/buffer-stream.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 11 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 894 bytes
Line 
1'use strict';
2const {PassThrough: PassThroughStream} = require('stream');
3
4module.exports = options => {
5 options = {...options};
6
7 const {array} = options;
8 let {encoding} = options;
9 const isBuffer = encoding === 'buffer';
10 let objectMode = false;
11
12 if (array) {
13 objectMode = !(encoding || isBuffer);
14 } else {
15 encoding = encoding || 'utf8';
16 }
17
18 if (isBuffer) {
19 encoding = null;
20 }
21
22 const stream = new PassThroughStream({objectMode});
23
24 if (encoding) {
25 stream.setEncoding(encoding);
26 }
27
28 let length = 0;
29 const chunks = [];
30
31 stream.on('data', chunk => {
32 chunks.push(chunk);
33
34 if (objectMode) {
35 length = chunks.length;
36 } else {
37 length += chunk.length;
38 }
39 });
40
41 stream.getBufferedValue = () => {
42 if (array) {
43 return chunks;
44 }
45
46 return isBuffer ? Buffer.concat(chunks, length) : chunks.join('');
47 };
48
49 stream.getBufferedLength = () => length;
50
51 return stream;
52};
Note: See TracBrowser for help on using the repository browser.