CLIENT_INFO.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0;
  4. exports.IS_READ_ONLY = true;
  5. function transformArguments() {
  6. return ['CLIENT', 'INFO'];
  7. }
  8. exports.transformArguments = transformArguments;
  9. const CLIENT_INFO_REGEX = /([^\s=]+)=([^\s]*)/g;
  10. function transformReply(rawReply) {
  11. const map = {};
  12. for (const item of rawReply.matchAll(CLIENT_INFO_REGEX)) {
  13. map[item[1]] = item[2];
  14. }
  15. const reply = {
  16. id: Number(map.id),
  17. addr: map.addr,
  18. fd: Number(map.fd),
  19. name: map.name,
  20. age: Number(map.age),
  21. idle: Number(map.idle),
  22. flags: map.flags,
  23. db: Number(map.db),
  24. sub: Number(map.sub),
  25. psub: Number(map.psub),
  26. multi: Number(map.multi),
  27. qbuf: Number(map.qbuf),
  28. qbufFree: Number(map['qbuf-free']),
  29. argvMem: Number(map['argv-mem']),
  30. obl: Number(map.obl),
  31. oll: Number(map.oll),
  32. omem: Number(map.omem),
  33. totMem: Number(map['tot-mem']),
  34. events: map.events,
  35. cmd: map.cmd,
  36. user: map.user,
  37. libName: map['lib-name'],
  38. libVer: map['lib-ver'],
  39. };
  40. if (map.laddr !== undefined) {
  41. reply.laddr = map.laddr;
  42. }
  43. if (map.redir !== undefined) {
  44. reply.redir = Number(map.redir);
  45. }
  46. if (map.ssub !== undefined) {
  47. reply.ssub = Number(map.ssub);
  48. }
  49. if (map['multi-mem'] !== undefined) {
  50. reply.multiMem = Number(map['multi-mem']);
  51. }
  52. if (map.resp !== undefined) {
  53. reply.resp = Number(map.resp);
  54. }
  55. return reply;
  56. }
  57. exports.transformReply = transformReply;