UNPKG

express-keenio

Version:

Express middleware for creating events from request-responses.

73 lines (58 loc) 1.82 kB
"use strict"; var helpers = require('./core/helpers'); var RoutesModule = (function (options, eventEmitter) { this._ee = helpers.setDefaultEvents(eventEmitter, []); this.isExcludedRoute = function (route) { if ((!route.method && !route.methods) || !route.path) { return false; } var routePath = route.path; var routeMethod; if (route.methods) { for (var lowercaseMethod in route.methods) { routeMethod = lowercaseMethod.toUpperCase(); } } else if (route.method) { routeMethod = route.method; } var excludeRoutes = options.excludeRoutes; for (var i = 0; i < excludeRoutes.length; i++) { var excludedRoute = excludeRoutes[i]; if (routeMethod === excludedRoute.method && routePath === excludedRoute.route) { return true; } } return false; }; this.getRouteConfig = function (route) { if ((!route.method && !route.methods) || !route.path) { return false; } var routePath = route.path; var routeMethod; if (route.methods) { for (var lowercaseMethod in route.methods) { routeMethod = lowercaseMethod.toUpperCase(); } } else if (route.method) { routeMethod = route.method; } var routes = options.routes; var metadata = {}; for (var i = 0; i < routes.length; i++) { var includedRoute = routes[i]; if (routeMethod === includedRoute.method && routePath === includedRoute.route) { if (includedRoute.eventCollectionName) { metadata.eventCollectionName = includedRoute.eventCollectionName; } if (includedRoute.tag) { metadata.tag = includedRoute.tag; } return metadata; } } return false; }; return this; }).bind({}); module.exports = RoutesModule;