heroku-debug
Version:
debugging plugin for the CLI
37 lines (30 loc) • 915 B
JavaScript
;
var hiredis = require('hiredis');
function HiredisReplyParser(options) {
this.name = 'hiredis';
this.options = options;
this.reader = new hiredis.Reader(options);
}
HiredisReplyParser.prototype.parseData = function () {
try {
return this.reader.get();
} catch (err) {
// Protocol errors land here
// Reset the parser. Otherwise new commands can't be processed properly
this.reader = new hiredis.Reader(this.options);
this.returnFatalError(err);
}
};
HiredisReplyParser.prototype.execute = function (data) {
this.reader.feed(data);
var reply = this.parseData();
while (reply !== undefined) {
if (reply && reply.name === 'Error') {
this.returnError(reply);
} else {
this.returnReply(reply);
}
reply = this.parseData();
}
};
module.exports = HiredisReplyParser;