summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/are-we-there-yet/tracker-stream.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/are-we-there-yet/tracker-stream.js')
-rw-r--r--deps/npm/node_modules/are-we-there-yet/tracker-stream.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/deps/npm/node_modules/are-we-there-yet/tracker-stream.js b/deps/npm/node_modules/are-we-there-yet/tracker-stream.js
new file mode 100644
index 0000000000..fb9598ed4e
--- /dev/null
+++ b/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')