All files / take-five/lib handle-request.js

100% Statements 22/22
100% Branches 8/8
100% Functions 4/4
100% Lines 20/20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 321x 32x 32x 32x 32x     52x 52x 1x     51x 36x 36x 15x 13x 13x 13x 13x 13x   1x     2x 1x          
module.exports = function handleRequest (req, res, routeList, routers) {
  let _count = 0
  let _len = routeList.length
  const mw = routeList[_count]
  setImmediate(() => mw(req, res, next))
 
  function next (err) {
    ++_count
    if (err) {
      return res.err(500)
    }
 
    if (_count < _len) {
      const mw = routeList[_count]
      return setImmediate(() => mw(req, res, next))
    } else if (routers) {
      try {
        const method = req.method.toLowerCase()
        const url = req.url.split('?')[0]
        const router = routers.get(method)
        router(url, req, res, next)
      } catch (err) {
        return res.err(404)
      }
    } else {
      if (!res.finished) {
        res.end()
      }
    }
  }
}