SpencerCDixon/redux-cli

View on GitHub
src/cli/cmds/generate/build-blueprint-commands.js

Summary

Maintainability
A
0 mins
Test Coverage
import _merge from 'lodash/merge';
import _cloneDeep from 'lodash/cloneDeep';

import getEnvironment from '../../environment';
import Generate from '../../../sub-commands/generate';
import buildBlueprintCommand from './build-blueprint-command';

const loadBlueprintSettings = (blueprint, bp) =>
  (blueprint.settings = _merge(
    _cloneDeep(bp.common),
    _cloneDeep(bp[blueprint.name])
  ));

const buildBlueprintCommands = () => {
  const environment = getEnvironment();
  const subCommand = new Generate(environment);

  const { blueprints, settings: { bp = {} } } = environment.settings;

  return blueprints.generators().map(blueprint => {
    loadBlueprintSettings(blueprint, bp);
    return buildBlueprintCommand(blueprint, subCommand);
  });
};

export default buildBlueprintCommands;