UNPKG

redis-smq

Version:

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

33 lines 1.43 kB
import { MessageEnvelope } from '../../message/message-envelope.js'; import { EMessageProperty, ProducibleMessage, } from '../../message/index.js'; import { _parseMessageState } from './_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; } export function _parseMessage(rawData) { const normalizedData = Array.isArray(rawData) ? arrayToRecord(rawData) : rawData; const messageJSON = JSON.parse(normalizedData[EMessageProperty.MESSAGE]); const { consumerGroupId, destinationQueue, ...message } = messageJSON; const messagePub = new ProducibleMessage(); Object.assign(messagePub, message); delete normalizedData[EMessageProperty.MESSAGE]; const status = Number(normalizedData[EMessageProperty.STATUS]); delete normalizedData[EMessageProperty.STATUS]; const messageState = _parseMessageState(normalizedData); const messageEnvelope = new MessageEnvelope(messagePub, messageState, status); messageEnvelope.setDestinationQueue(destinationQueue); if (consumerGroupId) messageEnvelope.setConsumerGroupId(consumerGroupId); return messageEnvelope; } //# sourceMappingURL=_parse-message.js.map