update stream clearing to be compatible with node 0.12
This commit is contained in:
@ -397,25 +397,42 @@ _.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 '';
|
||||||
var out = '';
|
|
||||||
if (writeBuffer.length) {
|
|
||||||
_.each(writeBuffer, function (writeReq) {
|
|
||||||
if (writeReq.chunk) {
|
|
||||||
// 0.9.12+ uses WriteReq objects with a chunk prop
|
|
||||||
out += '' + writeReq.chunk;
|
|
||||||
} else if (_.isArray(writeReq) && (typeof writeReq[0] === 'string' || Buffer.isBuffer(writeReq[0]))) {
|
|
||||||
// 0.9.4 - 0.9.9 buffers are arrays of arrays like [[chunk, cb], [chunk, undef], ...].
|
|
||||||
out += '' + writeReq[0];
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// flush the write buffer
|
||||||
|
var out = '';
|
||||||
|
_.each(writeBuffer, function (writeReq) {
|
||||||
|
if (writeReq.chunk) {
|
||||||
|
// 0.9.12+ uses WriteReq objects with a chunk prop
|
||||||
|
out += '' + writeReq.chunk;
|
||||||
|
} else if (_.isArray(writeReq) && (typeof writeReq[0] === 'string' || Buffer.isBuffer(writeReq[0]))) {
|
||||||
|
// 0.9.4 - 0.9.9 buffers are arrays of arrays like [[chunk, cb], [chunk, undef], ...].
|
||||||
|
out += '' + writeReq[0];
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
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);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user