UNPKG

redis-smq

Version:

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

99 lines 4.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports._getQueueProperties = _getQueueProperties; const redis_smq_common_1 = require("redis-smq-common"); const redis_keys_js_1 = require("../../common/redis/redis-keys/redis-keys.js"); const index_js_1 = require("../../errors/index.js"); const index_js_2 = require("../types/index.js"); function parseProperties(raw) { const properties = { deliveryModel: index_js_2.EQueueDeliveryModel.POINT_TO_POINT, queueType: index_js_2.EQueueType.LIFO_QUEUE, rateLimit: null, messagesCount: 0, acknowledgedMessagesCount: 0, deadLetteredMessagesCount: 0, pendingMessagesCount: 0, scheduledMessagesCount: 0, processingMessagesCount: 0, delayedMessagesCount: 0, requeuedMessagesCount: 0, operationalState: index_js_2.EQueueOperationalState.ACTIVE, lockId: null, lastStateChangeAt: null, }; for (const key in raw) { const keyNum = Number(key); const value = raw[key]; switch (keyNum) { case index_js_2.EQueueProperty.QUEUE_TYPE: properties.queueType = Number(value); break; case index_js_2.EQueueProperty.DELIVERY_MODEL: properties.deliveryModel = Number(value); break; case index_js_2.EQueueProperty.RATE_LIMIT: properties.rateLimit = value ? JSON.parse(value) : null; break; case index_js_2.EQueueProperty.MESSAGES_COUNT: properties.messagesCount = Number(value); break; case index_js_2.EQueueProperty.ACKNOWLEDGED_MESSAGES_COUNT: properties.acknowledgedMessagesCount = Number(value); break; case index_js_2.EQueueProperty.DEAD_LETTERED_MESSAGES_COUNT: properties.deadLetteredMessagesCount = Number(value); break; case index_js_2.EQueueProperty.SCHEDULED_MESSAGES_COUNT: properties.scheduledMessagesCount = Number(value); break; case index_js_2.EQueueProperty.PROCESSING_MESSAGES_COUNT: properties.processingMessagesCount = Number(value); break; case index_js_2.EQueueProperty.PENDING_MESSAGES_COUNT: properties.pendingMessagesCount = Number(value); break; case index_js_2.EQueueProperty.DELAYED_MESSAGES_COUNT: properties.delayedMessagesCount = Number(value); break; case index_js_2.EQueueProperty.REQUEUED_MESSAGES_COUNT: properties.requeuedMessagesCount = Number(value); break; case index_js_2.EQueueProperty.OPERATIONAL_STATE: properties.operationalState = Number(value); break; case index_js_2.EQueueProperty.LAST_STATE_CHANGE_AT: properties.lastStateChangeAt = Number(value); break; case index_js_2.EQueueProperty.LOCK_ID: properties.lockId = value ? value : null; break; default: return new redis_smq_common_1.PanicError({ message: `Unsupported queue property type [${key}]`, }); } } return properties; } function _getQueueProperties(redisClient, queueParams, cb) { const { keyQueueProperties } = redis_keys_js_1.redisKeys.getQueueKeys(queueParams.ns, queueParams.name, null); redisClient.hgetall(keyQueueProperties, (err, reply) => { if (err) cb(err); else if (!reply || !Object.keys(reply).length) cb(new index_js_1.QueueNotFoundError({ metadata: { queue: queueParams, }, })); else { const queueProperties = parseProperties(reply); if (queueProperties instanceof Error) cb(queueProperties); else cb(null, queueProperties); } }); } //# sourceMappingURL=_get-queue-properties.js.map