Code coverage report for beefy/lib/create-handler.js

Statements: 100% (16 / 16)      Branches: 100% (2 / 2)      Functions: 100% (4 / 4)      Lines: 100% (16 / 16)      Ignored: none     

All files » beefy/lib/ » create-handler.js
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 502   2       2             1 12             12                 12   12 72     12   1 22   22     1 2 2      
module.exports = createServer
 
var xtend = require('xtend')
  , http = require('http')
  , url = require('url')
 
var legacyBundle = require('./handlers/legacy-bundle.js')
  , defaultIndex = require('./handlers/default-index.js')
  , liveReload = require('./handlers/live-reload.js')
  , modernBundle = require('./handlers/bundle.js')
  , serveStatic = require('./handlers/static.js')
  , logRequests = require('./handlers/log.js')
 
function createServer(opts, io, innerHandler) {
  var handlers
    , handler
    , inner
 
  // order is important here. the higher
  // in the list, the deeper the handler
  // is in the resolution order.
  handlers = [
      defaultIndex
    , serveStatic
    , legacyBundle
    , modernBundle
    , logRequests
    , liveReload
  ]
 
  handler = innerHandler || _404
 
  inner = handlers.reduce(function(lhs, rhs) {
    return rhs(opts, io, lhs)
  }, handler)
 
  return beefyMainHandler
 
  function beefyMainHandler(req, resp) {
    var parsed = url.parse(req.url, true)
 
    return inner(this, req, resp, parsed)
  }
 
  function _404(server, req, resp, parsed) {
    resp.writeHead(404, {'content-type': 'text/plain'})
    resp.end('not found ):')
  }
}