Galerie und tage
This commit is contained in:
93
node_modules/first-chunk-stream/index.js
generated
vendored
Normal file
93
node_modules/first-chunk-stream/index.js
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
'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;
|
||||
Reference in New Issue
Block a user