25 lines
539 B
JavaScript
25 lines
539 B
JavaScript
'use strict';
|
|
var through2 = require('through2');
|
|
var StringDecoder = require('string_decoder').StringDecoder;
|
|
var createTracker = require('./tracker');
|
|
|
|
module.exports = function (pipeDestination) {
|
|
var decoder = new StringDecoder();
|
|
var tracker = createTracker();
|
|
|
|
var stream = through2(function (chunk, enc, cb) {
|
|
tracker.update(decoder.write(chunk));
|
|
cb(null, chunk);
|
|
});
|
|
|
|
Object.defineProperty(stream, 'lastLine', {
|
|
get: tracker.lastLine
|
|
});
|
|
|
|
if (pipeDestination) {
|
|
stream.pipe(pipeDestination);
|
|
}
|
|
|
|
return stream;
|
|
};
|