RpcMessage.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. function createRpcMessage(procedure, id, type, payload, source) {
  4. return {
  5. rpc: true,
  6. type,
  7. id,
  8. procedure,
  9. payload,
  10. source,
  11. };
  12. }
  13. exports.createRpcMessage = createRpcMessage;
  14. function createRpcCall(procedure, index, payload) {
  15. return createRpcMessage(procedure, index, 'call', payload);
  16. }
  17. exports.createRpcCall = createRpcCall;
  18. function createRpcReturn(procedure, index, payload) {
  19. return createRpcMessage(procedure, index, 'return', payload);
  20. }
  21. exports.createRpcReturn = createRpcReturn;
  22. function createRpcThrow(procedure, index, payload) {
  23. return createRpcMessage(procedure, index, 'throw', payload);
  24. }
  25. exports.createRpcThrow = createRpcThrow;
  26. function isRpcMessage(candidate) {
  27. return !!(typeof candidate === 'object' && candidate && candidate.rpc);
  28. }
  29. exports.isRpcMessage = isRpcMessage;
  30. function isRpcCallMessage(candidate) {
  31. return isRpcMessage(candidate) && candidate.type === 'call';
  32. }
  33. exports.isRpcCallMessage = isRpcCallMessage;
  34. function isRpcReturnMessage(candidate) {
  35. return isRpcMessage(candidate) && candidate.type === 'return';
  36. }
  37. exports.isRpcReturnMessage = isRpcReturnMessage;
  38. function isRpcThrowMessage(candidate) {
  39. return isRpcMessage(candidate) && candidate.type === 'throw';
  40. }
  41. exports.isRpcThrowMessage = isRpcThrowMessage;
  42. function getRpcMessageKey(message) {
  43. return `${message.procedure}_${message.id}`;
  44. }
  45. exports.getRpcMessageKey = getRpcMessageKey;