testarmada-magellan
Version:
Massively parallel automated testing
30 lines (24 loc) • 753 B
JavaScript
;
var path = require("path");
var clc = require("cli-color");
module.exports = function (mPath, moduleIsOptional) {
var resolvedRequire;
mPath = mPath.trim();
if (mPath.charAt(0) === ".") {
resolvedRequire = path.resolve(process.cwd() + "/" + mPath);
} else {
resolvedRequire = mPath;
}
var RequiredModule;
try {
/*eslint global-require: 0*/
RequiredModule = require(resolvedRequire);
} catch (e) {
if (e.code === "MODULE_NOT_FOUND" && moduleIsOptional !== true) {
console.error(clc.redBright("Error loading a module from user configuration."));
console.error(clc.redBright("Cannot find module: " + resolvedRequire));
throw new Error(e);
}
}
return new RequiredModule();
};