Code coverage report for beefy/index.js

Statements: 87.5% (28 / 32)      Branches: 80% (16 / 20)      Functions: 80% (4 / 5)      Lines: 87.5% (28 / 32)      Ignored: none     

All files » beefy/ » index.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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 771         1   1 6         6             6 6   6 6     6   6 2 2   2     4             4   1 20 2     18     1 6   1                 1 4       4   4 4      
var setupWatchify = require('./lib/bundlers/watchify.js')
  , createHandler = require('./lib/create-handler.js')
  , makeIO = require('./lib/make-io.js')
  , path = require('path')
 
module.exports = beefy
 
function beefy(dir, entries, innerHandler, bundlerFlags, quiet, ready) {
  var io = makeIO(process)
    , serverHandler
    , opts
    , idx
 
  opts = typeof arguments[0] === 'object' ? dir : {
        log: !quiet
      , entries: entries
      , bundler: null
      , cwd: dir
  }
 
  opts.entries = fixupEntries(opts.entries)
  idx = arguments.length - 1
 
  while(typeof arguments[idx] !== 'function' && idx !== -1) {
    --idx
  }
 
  ready = arguments[idx] || Function()
 
  if(opts.bundler) {
    serverHandler = createHandler(opts, io, innerHandler)
    ready(null, serverHandler)
 
    return beefyHandler
  }
 
  setupWatchify(
      path.dirname(require.resolve('watchify'))
    , opts.entries
    , bundlerFlags || (opts.bundler && opts.bundler.flags) || []
    , onready
  )
 
  return beefyHandler
 
  function beefyHandler(req, resp) {
    if(!serverHandler) {
      return setTimeout(beefyHandler, 0, req, resp)
    }
 
    serverHandler(req, resp)
  }
 
  function fixupEntries(entries) {
    return Array.isArray(entries) ? entries.reduce(toObject, {}) : entries
 
    function toObject(obj, entry) {
      entry = path.resolve(dir, entry)
 
      obj[entry.replace(opts.cwd, '/').replace('\\', '/')] = entry
 
      return obj
    }
  }
 
  function onready(err, handler) {
    Iif(err) {
      return ready(err)
    }
 
    opts.bundler = {command: handler, flags: bundlerFlags || []}
 
    serverHandler = createHandler(opts, io, innerHandler)
    ready(null, serverHandler)
  }
}