UNPKG

clown

Version:
46 lines (37 loc) 1.13 kB
var zip = require('zippy').zip; var log = require('./log'); var Router = function() { this._routes = []; this._handlers = []; }; Router.prototype.on = function(route, handler) { if (typeof route === 'string') { route = route.split(' '); } log.silly('router', 'Registered route %j', route); router._routes.push(typeof route === 'string' ? route.split(' ') : route); router._handlers.push(handler); return router; }; Router.prototype.route = function(route) { var router = this, handler = false; route = route.length ? route : ['']; router._routes.some(function(potential, i) { log.silly('router', 'Checking potential route %j...', potential); var isAMatch = zip(potential, route).every(function(t) { return t[0] == t[1]; }); if (isAMatch) { log.silly('router', 'Potential route %j is a match!', potential); handler = router._handlers[i]; } else { log.silly('router', 'Potential route %j is not a match', potential); } return isAMatch; }); return handler; }; var router = module.exports = new Router(); router.Router = Router;