Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
Questo repository è archiviato. Puoi vedere i file e clonarli, ma non puoi effettuare richieste di pushj o aprire problemi/richieste di pull.
|
- 'use strict';
- const PassThrough = require('stream').PassThrough;
-
- module.exports = opts => {
- opts = Object.assign({}, opts);
-
- const array = opts.array;
- let encoding = opts.encoding;
- const buffer = encoding === 'buffer';
- let objectMode = false;
-
- if (array) {
- objectMode = !(encoding || buffer);
- } else {
- encoding = encoding || 'utf8';
- }
-
- if (buffer) {
- encoding = null;
- }
-
- let len = 0;
- const ret = [];
- const stream = new PassThrough({objectMode});
-
- if (encoding) {
- stream.setEncoding(encoding);
- }
-
- stream.on('data', chunk => {
- ret.push(chunk);
-
- if (objectMode) {
- len = ret.length;
- } else {
- len += chunk.length;
- }
- });
-
- stream.getBufferedValue = () => {
- if (array) {
- return ret;
- }
-
- return buffer ? Buffer.concat(ret, len) : ret.join('');
- };
-
- stream.getBufferedLength = () => len;
-
- return stream;
- };
|