Code coverage report for browserify-middleware/lib/settings.js

Statements: 100% (79 / 79)      Branches: 100% (42 / 42)      Functions: 100% (8 / 8)      Lines: 100% (79 / 79)      Ignored: none     

All files » browserify-middleware/lib/ » settings.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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 1201   1   1 1 1     1 3 1   2 2   1 3 1 3 1 1 2 1   1   1   1     3     1 1 1 1 1 1 1 1 1 1 1       1 1 1 1   1 1 1 1 1 1   1 1 1 1 1 1   1     1 58 58   58   285 128     58   1160 494         58   41 4 37 10 27 2 25 8       58 58 58 58 58 58   58     1 290 1   289      
var ms = require('ms');
 
var reservedKeys = ['normalize', 'env', 'mode'];
 
exports = module.exports = setter();
exports.env = env;
exports.mode = process.env.NODE_ENV || 'development';
 
 
function env(name) {
  if (exports[name]) {
    return exports[name];
  }
  reservedKeys.push(name);
  return exports[name] = setter();
}
function setter(obj) {
  obj = obj || set;
  function set(key) {
    if (arguments.length === 2) {
      obj[key] = arguments[1];
      return this;
    } else if (typeof key === 'object') {
      Object.keys(key)
        .forEach(function (k) {
          obj[k] = key[k];
        });
      return this;
    } else {
      return obj[key];
    }
  }
  return set;
}
 
exports.external = [];
exports.ignore = [];
exports.ignoreMissing = false;
exports.transform = [];
exports.insertGlobals = false;
exports.detectGlobals = true;
exports.standalone = false;
exports.noParse = [];
exports.extensions = [];
exports.basedir = undefined;
exports.grep = /\.js$/;
 
//set some safe defaults for
//unknown environemnts
exports.cache = false;
exports.minify = false;
exports.gzip = true;
exports.debug = false;
 
var production = exports.env('production');
production.cache = true;
production.precompile = true;
production.minify = true;
production.gzip = true;
production.debug = false;
 
var development = exports.env('development');
development.cache = 'dynamic';
development.precompile = false;
development.minify = false;
development.gzip = false;
development.debug = true;
 
exports.normalize = normalize;
 
 
function normalize(options) {
  var defaults = exports[exports.mode] || {};
  options = options || {};
 
  Object.keys(defaults)
    .forEach(function (key) {
      if (options[key] === null || options[key] === undefined) {
        options[key] = defaults[key];
      }
    });
  Object.keys(exports)
    .forEach(function (key) {
      if (reservedKeys.indexOf(key) === -1 && (options[key] === null || options[key] === undefined)) {
        options[key] = exports[key];
      }
    });
 
 
  if (options.cache === 'dynamic') {
    // leave unchanged
  } else if (typeof options.cache === 'string' && ms(options.cache)) {
    options.cache = 'public, max-age=' + Math.floor(ms(options.cache)/1000);
  } else if (options.cache === true) {
    options.cache = 'public, max-age=60';
  } else if (typeof options.cache === 'number') {
    options.cache = 'public, max-age=' + Math.floor(options.cache/1000);
  } else if (typeof options.cache === 'object') {
    options.cache = (options.cache.private ? 'private' : 'public') + ', max-age='
                  + Math.floor(ms(options.cache.maxAge.toString())/1000);
  }
 
  options.precompile = !!options.precompile;
  options.external = arrayify(options.external);
  options.ignore = arrayify(options.ignore);
  options.transform = arrayify(options.transform);
  options.noParse = arrayify(options.noParse);
  options.extensions = arrayify(options.extensions);
 
  return options;
}
 
function arrayify(val) {
  if (val && !Array.isArray(val) && typeof val !== 'boolean') {
    return [val];
  } else {
    return val;
  }
}