payapi-rabbus
Version:
A micro-servicebus for RabbitMQ. Forked from https://github.com/derickbailey/rabbus.git solely to make it use payapi-whistlepunk as a dependency.
55 lines (40 loc) • 950 B
JavaScript
var _ = require("underscore");
// Option Parser
// -------------
var OptionParser = {
parse: function(options, defaults){
defaults = defaults || {};
options = deepClone(options);
options.exchange = parseOptions(options.exchange, defaults.exchange);
options.queue = parseOptions(options.queue, defaults.queue);
return options;
}
};
// Helpers
// -------
function parseOptions(options, defaults, name, attr){
var hasOptions = !!options;
if (hasOptions) {
options = stringOrObject(options, name, attr);
}
var hasDefaults = !!defaults;
if (hasDefaults){
options = _.defaults(options, defaults);
}
return options;
}
function stringOrObject(options){
if (!_.isObject(options)){
var value = options;
options = {
name: value
};
}
return options;
}
function deepClone(obj){
return JSON.parse(JSON.stringify(obj));
}
// Exports
// -------
module.exports = OptionParser;