hiredis.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*global Buffer require exports console setTimeout */
  2. var events = require("events"),
  3. util = require("../util"),
  4. hiredis = require("hiredis");
  5. exports.debug_mode = false;
  6. exports.name = "hiredis";
  7. function HiredisReplyParser(options) {
  8. this.name = exports.name;
  9. this.options = options || {};
  10. this.reset();
  11. events.EventEmitter.call(this);
  12. }
  13. util.inherits(HiredisReplyParser, events.EventEmitter);
  14. exports.Parser = HiredisReplyParser;
  15. HiredisReplyParser.prototype.reset = function () {
  16. this.reader = new hiredis.Reader({
  17. return_buffers: this.options.return_buffers || false
  18. });
  19. };
  20. HiredisReplyParser.prototype.execute = function (data) {
  21. var reply;
  22. this.reader.feed(data);
  23. while (true) {
  24. try {
  25. reply = this.reader.get();
  26. } catch (err) {
  27. this.emit("error", err);
  28. break;
  29. }
  30. if (reply === undefined) break;
  31. if (reply && reply.constructor === Error) {
  32. this.emit("reply error", reply);
  33. } else {
  34. this.emit("reply", reply);
  35. }
  36. }
  37. };