redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
58 lines • 2.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseMessageAuditConfig = parseMessageAuditConfig;
const default_config_js_1 = require("./default-config.js");
const index_js_1 = require("../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 Object.assign({}, defaultConfigOptions);
}
if (typeof config === 'boolean') {
return Object.assign(Object.assign({}, defaultConfigOptions), { enabled: config });
}
const cfg = Object.assign(Object.assign({}, defaultConfigOptions), config);
if (validateNumericValue(cfg.queueSize) === false)
throw new index_js_1.InvalidMessageAuditQueueSizeError();
if (validateNumericValue(cfg.expire) === false)
throw new index_js_1.ConfigurationMessageAuditExpireError();
return cfg;
}
function parseUnacknowledgementHistoryConfig(config, defaultConfigOptions) {
if (typeof config === 'undefined') {
return Object.assign({}, defaultConfigOptions);
}
if (typeof config === 'boolean') {
return Object.assign(Object.assign({}, defaultConfigOptions), { enabled: config });
}
const cfg = Object.assign(Object.assign({}, defaultConfigOptions), config);
if (validateNumericValue(cfg.maxSize) === false) {
throw new index_js_1.InvalidMessageAuditHistorySizeError();
}
return cfg;
}
function parseMessageAuditConfig(config = {}) {
let userConfig;
if (typeof config === 'boolean') {
userConfig = {
acknowledgedMessages: config,
deadLetteredMessages: config,
unacknowledgementHistory: config,
};
}
else {
userConfig = config;
}
const defaultMessageAudit = default_config_js_1.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