added whole system from ola4doc

This commit is contained in:
Bachir Soussi Chiadmi
2017-12-14 17:06:06 +01:00
parent 9646c74be1
commit 0611418f7a
8725 changed files with 817688 additions and 2 deletions
+65
View File
@@ -0,0 +1,65 @@
var PassThrough = require('readable-stream').PassThrough;
var util = require('util');
// Inherit of PassThrough stream
util.inherits(BufferStream, PassThrough);
// Constructor
function BufferStream(options, cb) {
// Ensure new were used
if (!(this instanceof BufferStream)) {
return new BufferStream(options, cb);
}
// Cast args
if(options instanceof Function) {
cb = options;
options = {};
}
options = options || {};
if(!(cb instanceof Function)) {
throw new Error('The given callback must be a function.');
}
this.__objectMode = options.objectMode;
// Parent constructor
PassThrough.call(this, options);
// Keep a reference to the callback
this._cb = cb;
// Internal buffer
this._buf = options.objectMode ? [] : Buffer('');
}
BufferStream.prototype._transform = function(chunk, encoding, done) {
if(this.__objectMode) {
this._buf.push(chunk);
} else {
this._buf = Buffer.concat([this._buf, chunk], this._buf.length + chunk.length);
}
done();
};
BufferStream.prototype._flush = function(done) {
var _this = this;
this._cb(null, this._buf, function(err, buf) {
if(buf && buf.length) {
if(_this.__objectMode) {
buf.forEach(function(chunk) {
_this.push(chunk);
});
} else {
_this.push(buf);
}
}
done();
});
};
module.exports = BufferStream;