length-prefixed-stream
Advanced tools
Comparing version 1.5.2 to 1.6.0
@@ -10,2 +10,3 @@ var varint = require('varint') | ||
this._destroyed = false | ||
this._missing = 0 | ||
@@ -49,3 +50,3 @@ this._message = null | ||
Decoder.prototype._prefixError = function (data) { | ||
this.emit('error', new Error('Message is larger than max length')) | ||
this.destroy(new Error('Message is larger than max length')) | ||
return data.length | ||
@@ -83,3 +84,3 @@ } | ||
while (offset < data.length) { | ||
while (!this._destroyed && offset < data.length) { | ||
if (this._missing) offset = this._parseMessage(data, offset) | ||
@@ -92,2 +93,9 @@ else offset = this._parseLength(data, offset) | ||
Decoder.prototype.destroy = function (err) { | ||
if (this._destroyed) return | ||
this._destroyed = true | ||
if (err) this.emit('error', err) | ||
this.emit('close') | ||
} | ||
module.exports = Decoder |
@@ -12,2 +12,3 @@ var varint = require('varint') | ||
stream.Transform.call(this) | ||
this._destroyed = false | ||
} | ||
@@ -18,2 +19,4 @@ | ||
Encoder.prototype._transform = function (data, enc, cb) { | ||
if (this._destroyed) return cb() | ||
varint.encode(data.length, pool, used) | ||
@@ -33,2 +36,9 @@ used += varint.encode.bytes | ||
Encoder.prototype.destroy = function (err) { | ||
if (this._destroyed) return | ||
this._destroyed = true | ||
if (err) this.emit('error', err) | ||
this.emit('close') | ||
} | ||
module.exports = Encoder |
{ | ||
"name": "length-prefixed-stream", | ||
"version": "1.5.2", | ||
"version": "1.6.0", | ||
"description": "Streaming length prefixed buffers", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
12436
336