@tamara027/lerna-terminal
Version:
Powerful cli ui for monorepos
43 lines (32 loc) • 967 B
JavaScript
;
var getLernaPackages = require('../getLernaPackages');
var getPackage = require('../getPackage');
var _require = require('../commander'),
getProgram = _require.getProgram;
var fs = require('fs');
/**
* @returns {Object} returns an object of available scripts as key and their packages as array
**/
function getScriptCommands() {
var commands = {};
var appDirectory = fs.realpathSync(process.cwd());
var appendPackage = function appendPackage(packagePath) {
var packageData = getPackage(packagePath);
if (!packageData.scripts) {
return;
}
Object.keys(packageData.scripts).forEach(function (scriptKey) {
if (!commands[scriptKey]) {
commands[scriptKey] = [];
}
commands[scriptKey].push(packagePath);
});
};
getLernaPackages(appendPackage);
// include root script in case of cli option is set
if (getProgram().root) {
appendPackage(appDirectory);
}
return commands;
}
module.exports = getScriptCommands;