module.exports = Meter var util = require("util") var Transform = require("stream").Transform if (!Transform) { Transform = require("readable-stream/transform") } function Meter(maxBytes) { if (!(this instanceof Meter)) return new Meter(maxBytes) Transform.call(this) this.bytes = 0 this.maxBytes = maxBytes || Number.MAX_VALUE } util.inherits(Meter, Transform) Meter.prototype._transform = function (chunk, encoding, cb) { this.bytes += chunk.length this.push(chunk) if (this.bytes > this.maxBytes) { return cb(new Error("Stream exceeded specified max of " + this.maxBytes + " bytes.")) } cb() }