UNPKG

@incdevco/framework

Version:
63 lines (31 loc) 1.12 kB
var Promise = require('bluebird'); function Consumer(config) { config = config || {}; this.handlers = config.handlers || {}; } Consumer.prototype.consume = function (action, index, deleteMessageFn) { var self = this; return Promise.try(function () { var parts = action.name.split(':'); var group = parts[0]; var name = self.normalizeActionName(parts[1]); if (!self.handlers[group]) { throw new Error('Group Is Unknown: ' + group); } if (typeof self.handlers[group][name] !== 'function') { throw new Error('Handler Is Not Function: ' + group + '.' + name); } return self.handlers[group][name](action, index, deleteMessageFn); }); }; Consumer.prototype.normalizeActionName = function (input) { var normalized = ''; input.split('-').forEach(function (part, index) { if (index > 0) { part = part.charAt(0).toUpperCase() + part.substr(1); } normalized += part; }); return normalized; }; module.exports = Consumer;