redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
47 lines • 2.19 kB
JavaScript
;
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