| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | 'use strict';var util = require('util');var Transform = require('stream').Transform;function ctor(options, transform) {	util.inherits(FirstChunk, Transform);	if (typeof options === 'function') {		transform = options;		options = {};	}	if (typeof transform !== 'function') {		throw new Error('transform function required');	}	function FirstChunk(options2) {		if (!(this instanceof FirstChunk)) {			return new FirstChunk(options2);		}		Transform.call(this, options2);		this._firstChunk = true;		this._transformCalled = false;		this._minSize = options.minSize;	}	FirstChunk.prototype._transform = function (chunk, enc, cb) {		this._enc = enc;		if (this._firstChunk) {			this._firstChunk = false;			if (this._minSize == null) {				transform.call(this, chunk, enc, cb);				this._transformCalled = true;				return;			}			this._buffer = chunk;			cb();			return;		}		if (this._minSize == null) {			this.push(chunk);			cb();			return;		}		if (this._buffer.length < this._minSize) {			this._buffer = Buffer.concat([this._buffer, chunk]);			cb();			return;		}		if (this._buffer.length >= this._minSize) {			transform.call(this, this._buffer.slice(), enc, function () {				this.push(chunk);				cb();			}.bind(this));			this._transformCalled = true;			this._buffer = false;			return;		}		this.push(chunk);		cb();	};	FirstChunk.prototype._flush = function (cb) {		if (!this._buffer) {			cb();			return;		}		if (this._transformCalled) {			this.push(this._buffer);			cb();		} else {			transform.call(this, this._buffer.slice(), this._enc, cb);		}	};	return FirstChunk;}module.exports = function () {	return ctor.apply(ctor, arguments)();};module.exports.ctor = ctor;
 |