const path = require('path');
const findPlugins = require('./findPlugins');
const flatten = require('lodash').flatten;

const attachPackage = (command, pkg) => Array.isArray(command)
  ? command.map(cmd => attachPackage(cmd, pkg))
  : { ...command, pkg };

/**
 * @return {Array} Array of commands
 */
module.exports = function getCommands() {
  const appRoot = process.cwd();
  const plugins = findPlugins([appRoot])
    .map(pathToCommands => {
      const name = pathToCommands.split('/')[0];

      return attachPackage(
        require(path.join(appRoot, 'node_modules', pathToCommands)),
        require(path.join(appRoot, 'node_modules', name, 'package.json'))
      );
    });

  return flatten(plugins);
};

const path = require('path');
const findPlugins = require('./findPlugins');
const flatten = require('lodash').flatten;

const attachPackage = (command, pkg) => Array.isArray(command)
  ? command.map(cmd => attachPackage(cmd, pkg))
  : { ...command, pkg };

/**
 * @return {Array} Array of commands
 */
module.exports = function getCommands() {
  const appRoot = process.cwd();
  const plugins = findPlugins([appRoot])
    .map(pathToCommands => {
      const name = pathToCommands.split(path.sep)[0];

      return attachPackage(
        require(path.join(appRoot, 'node_modules', pathToCommands)),
        require(path.join(appRoot, 'node_modules', name, 'package.json'))
      );
    });

  return flatten(plugins);
};

Update getCommands.js