XINFO_STREAM.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0;
  4. const generic_transformers_1 = require("./generic-transformers");
  5. exports.FIRST_KEY_INDEX = 2;
  6. exports.IS_READ_ONLY = true;
  7. function transformArguments(key) {
  8. return ['XINFO', 'STREAM', key];
  9. }
  10. exports.transformArguments = transformArguments;
  11. function transformReply(rawReply) {
  12. const parsedReply = {};
  13. for (let i = 0; i < rawReply.length; i += 2) {
  14. switch (rawReply[i]) {
  15. case 'length':
  16. parsedReply.length = rawReply[i + 1];
  17. break;
  18. case 'radix-tree-keys':
  19. parsedReply.radixTreeKeys = rawReply[i + 1];
  20. break;
  21. case 'radix-tree-nodes':
  22. parsedReply.radixTreeNodes = rawReply[i + 1];
  23. break;
  24. case 'groups':
  25. parsedReply.groups = rawReply[i + 1];
  26. break;
  27. case 'last-generated-id':
  28. parsedReply.lastGeneratedId = rawReply[i + 1];
  29. break;
  30. case 'first-entry':
  31. parsedReply.firstEntry = rawReply[i + 1] ? {
  32. id: rawReply[i + 1][0],
  33. message: (0, generic_transformers_1.transformTuplesReply)(rawReply[i + 1][1])
  34. } : null;
  35. break;
  36. case 'last-entry':
  37. parsedReply.lastEntry = rawReply[i + 1] ? {
  38. id: rawReply[i + 1][0],
  39. message: (0, generic_transformers_1.transformTuplesReply)(rawReply[i + 1][1])
  40. } : null;
  41. break;
  42. }
  43. }
  44. return parsedReply;
  45. }
  46. exports.transformReply = transformReply;