update stream clearing to be compatible with node 0.12

This commit is contained in:
Spencer Alger
2015-03-17 12:03:39 -07:00
parent c74e7550de
commit ed26798e5e
4 changed files with 37 additions and 33 deletions

View File

@ -397,11 +397,13 @@ _.createArray = function (input, transform) {
* @return {string} - the remaining test to be written to the stream * @return {string} - the remaining test to be written to the stream
*/ */
_.getUnwrittenFromStream = function (stream) { _.getUnwrittenFromStream = function (stream) {
if (stream && stream._writableState && stream._writableState.buffer) { var writeBuffer = _.getStreamWriteBuffer(stream);
// flush the write buffer to disk if (!writeBuffer || !writeBuffer.length) {
var writeBuffer = stream._writableState.buffer; return '';
}
// flush the write buffer
var out = ''; var out = '';
if (writeBuffer.length) {
_.each(writeBuffer, function (writeReq) { _.each(writeBuffer, function (writeReq) {
if (writeReq.chunk) { if (writeReq.chunk) {
// 0.9.12+ uses WriteReq objects with a chunk prop // 0.9.12+ uses WriteReq objects with a chunk prop
@ -413,11 +415,26 @@ _.getUnwrittenFromStream = function (stream) {
return false; return false;
} }
}); });
}
return out; return out;
};
_.getStreamWriteBuffer = function (stream) {
if (!stream || !stream._writableState) return;
var writeState = stream._writableState;
if (writeState.getBuffer) {
return writeState.getBuffer();
} else if (writeState.buffer) {
return writeState.buffer;
} }
}; };
_.clearWriteStreamBuffer = function (stream) {
var buffer = _.emptyWriteStreamBuffer(stream);
return buffer && buffer.splice(0);
};
/** /**
* return the current time in milliseconds since epoch * return the current time in milliseconds since epoch
*/ */

View File

@ -247,7 +247,6 @@ describe('Connection Pool', function () {
var clock = sinon.useFakeTimers(); var clock = sinon.useFakeTimers();
stub.autoRelease(clock); stub.autoRelease(clock);
debugger;
connection.setStatus('dead'); connection.setStatus('dead');
expect(_.size(clock.timers)).to.eql(1); expect(_.size(clock.timers)).to.eql(1);
var id = _(clock.timers).keys().first(); var id = _(clock.timers).keys().first();

View File

@ -15,15 +15,7 @@ describe('File Logger', function () {
afterEach(function () { afterEach(function () {
parentLog.close(); parentLog.close();
logger && _.clearWriteStreamBuffer(logger.stream);
if (logger
&& logger.stream
&& logger.stream._writableState
&& logger.stream._writableState.buffer.length
) {
// empty the buffer manually
logger.stream._writableState.buffer.splice(0);
}
}); });
function makeLogger(parent, levels) { function makeLogger(parent, levels) {

View File

@ -19,11 +19,7 @@ describe('Stream Logger', function () {
afterEach(function () { afterEach(function () {
parentLog.close(); parentLog.close();
_.clearWriteStreamBuffer(stream);
if (stream._writableState && stream._writableState.buffer.length) {
// empty the buffer manually
stream._writableState.buffer.splice(0);
}
}); });
function makeLogger(parent, levels) { function makeLogger(parent, levels) {