rascal
Version:
A config driven wrapper for amqplib supporting multi-host connections, automatic error recovery, redelivery flood protection, transparent encryption / decryption, channel pooling and publication timeouts
24 lines (21 loc) • 715 B
JavaScript
const debug = require('debug')('rascal:tasks:initSubscriptions');
const _ = require('lodash');
const async = require('async');
const Subscription = require('../Subscription');
module.exports = _.curry((config, ctx, next) => {
async.eachSeries(
_.values(config.subscriptions),
(subscriptionConfig, callback) => {
initSubscription(subscriptionConfig, ctx, (err, subscription) => {
ctx.broker._addSubscription(subscription);
callback(err);
});
},
(err) => {
next(err, config, ctx);
}
);
});
function initSubscription(config, ctx, next) {
Subscription.create(ctx.broker, ctx.vhosts[config.vhost], ctx.counters[config.redeliveries.counter], config, next);
}