function(plugins, config) {
    var self = this;
    var aliasMap = Object.keys(plugins)
      .reduce(function(aliases, pluginName) {
        if (!aliases[pluginName] || !aliases[pluginName].as) {
          aliases[pluginName] = { as: [pluginName] };
        }

        aliases[pluginName].as = self._castArray(aliases[pluginName].as);
        return aliases;
      }, config);

    var unknownConfigKeys = _.difference(Object.keys(aliasMap), Object.keys(plugins));

    if (unknownConfigKeys.length) {
      this._logUnknownPlugins(unknownConfigKeys, 'config.pipeline.alias');
    }

    return aliasMap;
  }
function(plugins, config) {
    var self = this;
    var aliasMap = Object.keys(plugins)
      .reduce(function(aliases, pluginName) {
        if (!aliases[pluginName] || !aliases[pluginName].as) {
          aliases[pluginName] = { as: [pluginName] };
        }

        aliases[pluginName].as = self._castArray(aliases[pluginName].as);
        return aliases;
      }, config);

    var unknownConfigKeys = _.difference(Object.keys(aliasMap), Object.keys(plugins));

    if (unknownConfigKeys.length) {
      this._logUnknownPlugins(unknownConfigKeys, 'config.pipeline.alias');
    }

    return aliasMap;
  }
function ( plugins , config ) { var self = this ; var aliasMap = Object . keys ( plugins ) . reduce ( function ( aliases , pluginName ) { if ( ! aliases [ pluginName ] || ! aliases [ pluginName ] . as ) { aliases [ pluginName ] = { as : [ pluginName ] } ; } aliases [ pluginName ] . as = self . _castArray ( aliases [ pluginName ] . as ) ; return aliases ; } , config ) ; var unknownConfigKeys = _ . difference ( Object . keys ( aliasMap ) , Object . keys ( plugins ) ) ; if ( unknownConfigKeys . length ) { this . _logUnknownPlugins ( unknownConfigKeys , 'config.pipeline.alias' ) ; } return aliasMap ; }
Build up a hash of the all plugin aliases, keyed by plugin name, with the value being an array of aliases.
This hash will contain an entry for every installed plugin.

If a plugin has not been referenced in `config.pipeline.alias` then it will be added to the map
with an alias to it's original name (see `boo` below),

Example return value:

{
foo: { as: ['bar', 'baz'] },
boo: { as: ['boo'] }
}
Build up a hash of the all plugin aliases keyed by plugin name with the value being an array of aliases . This hash will contain an entry for every installed plugin .