ROLE.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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 ['ROLE'];
  7. }
  8. exports.transformArguments = transformArguments;
  9. function transformReply(reply) {
  10. switch (reply[0]) {
  11. case 'master':
  12. return {
  13. role: 'master',
  14. replicationOffest: reply[1],
  15. replicas: reply[2].map(([ip, port, replicationOffest]) => ({
  16. ip,
  17. port: Number(port),
  18. replicationOffest: Number(replicationOffest)
  19. }))
  20. };
  21. case 'slave':
  22. return {
  23. role: 'slave',
  24. master: {
  25. ip: reply[1],
  26. port: reply[2]
  27. },
  28. state: reply[3],
  29. dataReceived: reply[4]
  30. };
  31. case 'sentinel':
  32. return {
  33. role: 'sentinel',
  34. masterNames: reply[1]
  35. };
  36. }
  37. }
  38. exports.transformReply = transformReply;