morpha
Version:
A Web-IDE or Desktop-IDE creator.
45 lines (37 loc) • 1.45 kB
JavaScript
;
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _require = require('./WHITE_LIST'),
CORE_SREVICE_NAMES = _require.CORE_SREVICE_NAMES,
CONFIG_NAMES = _require.CONFIG_NAMES;
var _require2 = require('./constants'),
PREFIX = _require2.PREFIX;
var safeRequire = function safeRequire(moduleName) {
try {
return require(moduleName);
} catch (e) {
return null;
}
};
function fixPackageName(name) {
var reg = new RegExp('^' + PREFIX);
// if (!reg.test(name)) throw new Error(`Package name must be prefixed with "${PREFIX}" but get ${name}.`)
var fixedName = name.replace(reg, '');
if (CORE_SREVICE_NAMES.concat(CONFIG_NAMES).includes(fixedName)) {
throw new Error('Package name "' + name + '" illegal.');
}
return fixedName;
}
module.exports = function getMorphaConfig(targetPack) {
var path = safeRequire('path');
var morphaConfig = safeRequire(path.join(targetPack, 'morpha.config.js')) || {};
var pack = require(path.join(targetPack, 'package.json'));
pack.morpha = (0, _assign2.default)({}, morphaConfig, pack.morpha);
var packName = fixPackageName(pack.name);
pack = pack.morpha;
pack.isModulePath = /node_modules/.test(targetPack);
pack.name = packName;
pack.packages = pack.packages || {};
return pack;
};