redis-smq
Version:
A simple high-performance Redis message queue for Node.js.
41 lines • 1.28 kB
JavaScript
import { ConfigurationMessageQueueSizeError, ConfigurationMessageStoreExpireError, } from '../errors/index.js';
function getMessageStorageConfig(config, key) {
const { store } = config.messages ?? {};
if (typeof store === 'undefined' || typeof store === 'boolean') {
return Boolean(store);
}
const params = store[key];
if (params)
return params;
return false;
}
function getMessageStorageParams(config, key) {
const params = getMessageStorageConfig(config, key);
if (typeof params === 'boolean') {
return {
store: params,
queueSize: 0,
expire: 0,
};
}
const queueSize = Number(params.queueSize ?? 0);
if (isNaN(queueSize) || queueSize < 0) {
throw new ConfigurationMessageQueueSizeError();
}
const expire = Number(params.expire ?? 0);
if (isNaN(expire) || expire < 0) {
throw new ConfigurationMessageStoreExpireError();
}
return {
store: true,
queueSize,
expire,
};
}
export default function Store(config) {
return {
acknowledged: getMessageStorageParams(config, 'acknowledged'),
deadLettered: getMessageStorageParams(config, 'deadLettered'),
};
}
//# sourceMappingURL=store.js.map