First upload version 0.0.1
This commit is contained in:
62
node_modules/memory-stream/index.js
generated
vendored
Normal file
62
node_modules/memory-stream/index.js
generated
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
var Stream = require("stream").Stream;
|
||||
var util = require('util');
|
||||
|
||||
// For Node 0.8 users
|
||||
if (!Stream.Writable) {
|
||||
Stream = require('readable-stream')
|
||||
}
|
||||
|
||||
// Internal proto for buffering memory stream
|
||||
var MemoryStream = function(options) {
|
||||
if (!(this instanceof MemoryStream)) {
|
||||
return new MemoryStream();
|
||||
}
|
||||
|
||||
this.options = options = options || {};
|
||||
if (!this.options.encoding && !this.options.objectMode) {
|
||||
this.options.encoding = 'Buffer';
|
||||
}
|
||||
|
||||
Stream.Writable.call(this, options);
|
||||
this.buffer = [];
|
||||
|
||||
};
|
||||
|
||||
util.inherits(MemoryStream, Stream.Writable);
|
||||
|
||||
MemoryStream.prototype._write = function(chunk, encoding, cb) {
|
||||
if (!this._writableState.objectMode && this.options.encoding === 'Buffer' && encoding === 'utf8') {
|
||||
this.buffer.push(new Buffer(chunk));
|
||||
} else if (this._writableState.objectMode) {
|
||||
this.buffer.push(Buffer.isBuffer(chunk) ? JSON.parse(chunk) : chunk);
|
||||
} else {
|
||||
this.buffer.push(chunk);
|
||||
}
|
||||
cb();
|
||||
};
|
||||
|
||||
MemoryStream.prototype.get = function() {
|
||||
if (this._writableState.objectMode) {
|
||||
return this.buffer;
|
||||
} else {
|
||||
return this.toBuffer();
|
||||
}
|
||||
};
|
||||
|
||||
MemoryStream.prototype.toString = function() {
|
||||
if (this._writableState.objectMode) {
|
||||
JSON.stringify(this.buffer);
|
||||
} else {
|
||||
return this.buffer.join('');
|
||||
}
|
||||
};
|
||||
|
||||
MemoryStream.prototype.toBuffer = function() {
|
||||
if (this._writableState.objectMode) {
|
||||
return new Buffer(this.toString());
|
||||
} else {
|
||||
return Buffer.concat(this.buffer);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = MemoryStream;
|
||||
Reference in New Issue
Block a user