UNPKG

transit-im

Version:

express-like framework for AIM bots creation (ICQ as well)

49 lines (45 loc) 1.35 kB
// Generated by CoffeeScript 1.6.3 (function() { var parser; parser = require('./parser'); module.exports = function(parserObject) { var parsedCache, prepareCache; if (parserObject == null) { parserObject = parser; } if (parserObject.user) { throw "You forgot to call constructor of commandParser middleware"; } parsedCache = null; prepareCache = function(handlers) { var _this = this; parsedCache = {}; return handlers.filter(function(h) { return h.pattern; }).forEach(function(h) { var parsed; parsed = parser.parsePattern(h.pattern, h.handler); return parsedCache[parsed.cmd] = parsed; }); }; return { install: function(transit) { transit.extendRequest("attrs"); return function(req, res, next) { var args, cb, parsedData, _ref; if (!req.data) { return next(); } prepareCache(req.handlers); parsedData = parser.parseCommand(req.data); if (parsedCache[parsedData.cmd]) { _ref = parsedCache[parsedData.cmd].collectArgs(parsedData.args), cb = _ref.cb, args = _ref.args; req.attr("handler", cb); req.attr("attrs", args); } return next(); }; } }; }; }).call(this);