loadReporter.js 974 Bytes
'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = loadReporter;

var _path = require('path');

var _path2 = _interopRequireDefault(_path);

var _mocha = require('mocha');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function loadReporter(reporter, cwd) {
  // if reporter is already loaded, just return it
  if (typeof reporter === 'function') {
    return reporter;
  }

  // try to load built-in reporter like 'spec'
  if (typeof _mocha.reporters[reporter] !== 'undefined') {
    return _mocha.reporters[reporter];
  }

  var loadedReporter = null;
  try {
    // try to load reporter from node_modules
    loadedReporter = require(reporter); // eslint-disable-line global-require
  } catch (e) {
    // try to load reporter from cwd
    loadedReporter = require(_path2.default.resolve(cwd, reporter)); // eslint-disable-line global-require
  }
  return loadedReporter;
}