You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
539 B
JavaScript
25 lines
539 B
JavaScript
6 years ago
|
'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;
|
||
|
};
|