source: trip-planner-front/node_modules/get-stream/buffer-stream.js@ 188ee53

Last change on this file since 188ee53 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

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