diff options
Diffstat (limited to 'deps/node/deps/npm/node_modules/are-we-there-yet/tracker-stream.js')
-rw-r--r-- | deps/node/deps/npm/node_modules/are-we-there-yet/tracker-stream.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/deps/node/deps/npm/node_modules/are-we-there-yet/tracker-stream.js b/deps/node/deps/npm/node_modules/are-we-there-yet/tracker-stream.js new file mode 100644 index 00000000..fb9598ed --- /dev/null +++ b/deps/node/deps/npm/node_modules/are-we-there-yet/tracker-stream.js @@ -0,0 +1,35 @@ +'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') |