Sha256: 74502372f3e457ae4d05546c47b4fd88c8df6ed8eb6166b6feb8bec1798ec6dc

Contents?: true

Size: 894 Bytes

Versions: 36

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

36 entries across 36 versions & 3 rubygems

Version Path
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
immosquare-cleaner-0.1.40 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.39 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.38 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.32 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.31 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.30 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.29 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.28 node_modules/get-stream/buffer-stream.js
immosquare-cleaner-0.1.27 node_modules/get-stream/buffer-stream.js