UNPKG

koan

Version:

A Koa.js Application Boilerplate

39 lines (32 loc) 951 B
'use strict'; /** * Dependencies */ var path = require('path'); var router = require('koa-route'); var methods = require('methods'); /** * Dispatcher */ module.exports.routes = function(routeConfig) { var routes = []; for (var urlPath in routeConfig) { var params = routeConfig[urlPath] || {}; params.controller = params.controller || 'index'; params.action = params.action || 'index'; // Extract HTTP method var method = 'get'; var pathSegments = urlPath.split(' '); if (pathSegments.length > 1) { var prefix = pathSegments.shift().trim().toLowerCase(); if (methods.indexOf(prefix) !== -1) { method = prefix; urlPath = pathSegments.join(); } } // Get controller / action var controllerObject = require(path.join(process.cwd(), 'controllers', params.controller)); routes.push(router[method](urlPath, controllerObject[params.action])); } return routes; };