UNPKG

redis-smq

Version:

A simple high-performance Redis message queue for Node.js.

55 lines 2.16 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-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, exchange: null, rateLimit: null, messagesCount: 0, }; for (const key in raw) { const keyNum = Number(key); if (keyNum === index_js_2.EQueueProperty.QUEUE_TYPE) { properties.queueType = Number(raw[key]); } else if (keyNum === index_js_2.EQueueProperty.RATE_LIMIT) { properties.rateLimit = JSON.parse(raw[key]); } else if (keyNum === index_js_2.EQueueProperty.EXCHANGE) { properties.exchange = raw[key]; } else if (keyNum === index_js_2.EQueueProperty.MESSAGES_COUNT) { properties.messagesCount = Number(raw[key]); } else if (keyNum === index_js_2.EQueueProperty.DELIVERY_MODEL) { properties.deliveryModel = Number(raw[key]); } else { return new redis_smq_common_1.PanicError(`Unsupported queue settings type [${key}]`); } } return properties; } function _getQueueProperties(redisClient, queueParams, cb) { const { keyQueueProperties } = redis_keys_js_1.redisKeys.getQueueKeys(queueParams, null); redisClient.hgetall(keyQueueProperties, (err, reply) => { if (err) cb(err); else if (!reply || !Object.keys(reply).length) cb(new index_js_1.QueueQueueNotFoundError()); else { const queueProperties = parseProperties(reply); if (queueProperties instanceof Error) cb(queueProperties); else cb(null, queueProperties); } }); } //# sourceMappingURL=_get-queue-properties.js.map