UNPKG

redis-smq

Version:

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

67 lines 2.41 kB
import { defaultConfig } from './default-config.js'; import { ConfigurationMessageAuditExpireError, InvalidMessageAuditHistorySizeError, InvalidMessageAuditQueueSizeError, } from '../errors/index.js'; function validateNumericValue(value) { const numericValue = Number(value); if (isNaN(numericValue) || numericValue < 0) return false; return numericValue; } function parseMessageAuditMessagesConfig(config, defaultConfigOptions) { if (typeof config === 'undefined') { return { ...defaultConfigOptions }; } if (typeof config === 'boolean') { return { ...defaultConfigOptions, enabled: config, }; } const cfg = { ...defaultConfigOptions, ...config, }; if (validateNumericValue(cfg.queueSize) === false) throw new InvalidMessageAuditQueueSizeError(); if (validateNumericValue(cfg.expire) === false) throw new ConfigurationMessageAuditExpireError(); return cfg; } function parseUnacknowledgementHistoryConfig(config, defaultConfigOptions) { if (typeof config === 'undefined') { return { ...defaultConfigOptions }; } if (typeof config === 'boolean') { return { ...defaultConfigOptions, enabled: config, }; } const cfg = { ...defaultConfigOptions, ...config, }; if (validateNumericValue(cfg.maxSize) === false) { throw new InvalidMessageAuditHistorySizeError(); } return cfg; } export function parseMessageAuditConfig(config = {}) { let userConfig; if (typeof config === 'boolean') { userConfig = { acknowledgedMessages: config, deadLetteredMessages: config, unacknowledgementHistory: config, }; } else { userConfig = config; } const defaultMessageAudit = defaultConfig.messageAudit; return { acknowledgedMessages: parseMessageAuditMessagesConfig(userConfig.acknowledgedMessages, defaultMessageAudit.acknowledgedMessages), deadLetteredMessages: parseMessageAuditMessagesConfig(userConfig.deadLetteredMessages, defaultMessageAudit.deadLetteredMessages), unacknowledgementHistory: parseUnacknowledgementHistoryConfig(userConfig.unacknowledgementHistory, defaultMessageAudit.unacknowledgementHistory), }; } //# sourceMappingURL=parse-message-audit-config.js.map