| 123456789101112131415161718192021222324252627282930313233343536 | 'use strict'var util = require('util')var stream = require('readable-stream')var delegate = require('delegates')var Tracker = require('./tracker.js')var TrackerStream = module.exports = function (name, size, options) {  stream.Transform.call(this, options)  this.tracker = new Tracker(name, size)  this.name = name  this.id = this.tracker.id  this.tracker.on('change', delegateChange(this))}util.inherits(TrackerStream, stream.Transform)function delegateChange (trackerStream) {  return function (name, completion, tracker) {    trackerStream.emit('change', name, completion, trackerStream)  }}TrackerStream.prototype._transform = function (data, encoding, cb) {  this.tracker.completeWork(data.length ? data.length : 1)  this.push(data)  cb()}TrackerStream.prototype._flush = function (cb) {  this.tracker.finish()  cb()}delegate(TrackerStream.prototype, 'tracker')  .method('completed')  .method('addWork')  .method('finish')
 |