Sha256: 4f35da761d93d50f57fe40f8f4cd13538195f801103220bc568534b05b4b65a0

Contents?: true

Size: 1.11 KB

Versions: 2

Compression:

Stored size: 1.11 KB

Contents

'use strict';

var PassThrough = require('stream').PassThrough;
var Writable = require('stream').Writable;
var util = require('util');

util.inherits(Appendee, PassThrough);
util.inherits(Appender, Writable);

function Appendee(factory, opts) {
	PassThrough.call(this, opts);
	this.factory = factory;
	this.opts = opts;
}

//noinspection JSUnusedGlobalSymbols
Appendee.prototype._flush = function (end) {
	var stream = this.factory();
	stream.pipe(new Appender(this, this.opts))
		.on('finish', end);
	stream.resume();
};

function Appender(target, opts) {
	Writable.call(this, opts);
	this.target = target;
}

//noinspection JSUnusedGlobalSymbols
Appender.prototype._write = function (chunk, enc, cb) {
	this.target.push(chunk);
	cb();
};

function addStream(stream, opts) {
	opts = opts || {};
	var factory;
	if (typeof stream === 'function') {
		factory = stream;
	}
	else {
		stream.pause();
		factory = function () {
			return stream;
		};
	}
	return new Appendee(factory, opts);
}

addStream.obj = function (stream, opts) {
	opts = opts || {};
	opts.objectMode = true;
	return addStream(stream, opts);
};

module.exports = addStream;

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pcp-server-ruby-sdk-0.0.6 node_modules/add-stream/index.js
pcp-server-ruby-sdk-0.1.0 node_modules/add-stream/index.js