'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; };