Code coverage report for src/defaults.js

Statements: 76.92% (20 / 26)      Branches: 37.5% (3 / 8)      Functions: 33.33% (1 / 3)      Lines: 76.92% (20 / 26)      Ignored: none     

All files » src/ » defaults.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 511 1 1 1 1 1 1   1 28 28 28       28   28     28 28                 28   28           28       28             28  
var fs = require('fs')
var path = require('path')
var express = require('express')
var logger = require('morgan')
var cors = require('cors')
var errorhandler = require('errorhandler')
var objectAssign = require('object-assign')
 
module.exports = function (opts) {
  var userDir = path.join(process.cwd(), 'public')
  var defaultDir = path.join(__dirname, 'public')
  var staticDir = fs.existsSync(userDir) ?
    userDir :
    defaultDir
 
  opts = objectAssign({ logger: true, static: staticDir }, opts)
 
  var arr = []
 
  // Logger
  Eif (opts.logger) {
    arr.push(logger('dev', {
      skip: function (req, res) {
        return process.env.NODE_ENV === 'test' ||
          req.path === '/favicon.ico'
      }
    }))
  }
 
  // Enable CORS for all the requests, including static files
  arr.push(cors({ origin: true, credentials: true }))
 
  Iif (process.env.NODE_ENV === 'development') {
    // only use in development
    arr.push(errorhandler())
  }
 
  // Serve static files
  arr.push(express.static(opts.static))
 
  // No cache for IE
  // https://support.microsoft.com/en-us/kb/234067
  arr.push(function (req, res, next) {
    res.header('Cache-Control', 'no-cache')
    res.header('Pragma', 'no-cache')
    res.header('Expires', '-1')
    next()
  })
 
  return arr
}