Sha256: 74502372f3e457ae4d05546c47b4fd88c8df6ed8eb6166b6feb8bec1798ec6dc

Contents?: true

Size: 894 Bytes

Versions: 45

Compression:

Stored size: 894 Bytes

Contents

'use strict';
const {PassThrough: PassThroughStream} = require('stream');

module.exports = options => {
	options = {...options};

	const {array} = options;
	let {encoding} = options;
	const isBuffer = encoding === 'buffer';
	let objectMode = false;

	if (array) {
		objectMode = !(encoding || isBuffer);
	} else {
		encoding = encoding || 'utf8';
	}

	if (isBuffer) {
		encoding = null;
	}

	const stream = new PassThroughStream({objectMode});

	if (encoding) {
		stream.setEncoding(encoding);
	}

	let length = 0;
	const chunks = [];

	stream.on('data', chunk => {
		chunks.push(chunk);

		if (objectMode) {
			length = chunks.length;
		} else {
			length += chunk.length;
		}
	});

	stream.getBufferedValue = () => {
		if (array) {
			return chunks;
		}

		return isBuffer ? Buffer.concat(chunks, length) : chunks.join('');
	};

	stream.getBufferedLength = () => length;

	return stream;
};

Version data entries

45 entries across 45 versions & 3 rubygems

Version Path
immosquare-cleaner-0.1.60 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.59 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.58 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.57 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.56 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.55 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.54 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.53 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.52 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.51 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.50 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.49 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.48 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.47 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.46 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.45 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.44 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.43 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.42 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.41 node_modules/get-stream/buffer-stream.js