UNPKG

redis-smq

Version:

A high-performance, reliable, and scalable message queue for Node.js.

47 lines 2.19 kB
"use strict"; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); exports._parseMessage = _parseMessage; const message_envelope_js_1 = require("../../message/message-envelope.js"); const index_js_1 = require("../../message/index.js"); const _parse_message_state_js_1 = require("./_parse-message-state.js"); function arrayToRecord(rawData) { const record = {}; for (let i = 0; i < rawData.length; i += 2) { const key = rawData[i]; const value = rawData[i + 1]; if (key !== undefined && value !== undefined) { record[key] = value; } } return record; } function _parseMessage(rawData) { const normalizedData = Array.isArray(rawData) ? arrayToRecord(rawData) : rawData; const messageJSON = JSON.parse(normalizedData[index_js_1.EMessageProperty.MESSAGE]); const { consumerGroupId, destinationQueue } = messageJSON, message = __rest(messageJSON, ["consumerGroupId", "destinationQueue"]); const messagePub = new index_js_1.ProducibleMessage(); Object.assign(messagePub, message); delete normalizedData[index_js_1.EMessageProperty.MESSAGE]; const status = Number(normalizedData[index_js_1.EMessageProperty.STATUS]); delete normalizedData[index_js_1.EMessageProperty.STATUS]; const messageState = (0, _parse_message_state_js_1._parseMessageState)(normalizedData); const messageEnvelope = new message_envelope_js_1.MessageEnvelope(messagePub, messageState, status); messageEnvelope.setDestinationQueue(destinationQueue); if (consumerGroupId) messageEnvelope.setConsumerGroupId(consumerGroupId); return messageEnvelope; } //# sourceMappingURL=_parse-message.js.map