UNPKG

morpha

Version:

A Web-IDE or Desktop-IDE creator.

45 lines (37 loc) 1.46 kB
'use strict'; 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; };