all files / packages/ngdoc-ext/processors/ generateErrorsGroupArea.js

100% Statements 11/11
100% Branches 4/4
100% Functions 5/5
100% Lines 11/11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48                                                                          
var _ = require('lodash');
 
/**
 * @dgProcessor generateErrorsGroupArea
 * @description
 * Provides representation for the error and updates error data to match newly created module
 * If matching module is found, no new module is created
 */
module.exports = function generateErrorsGroupArea(log, aliasMap, moduleMap, createDocMessage) {
  return {
    $runAfter: ['moduleDocsProcessor'],
    $runBefore: ['generateComponentGroupsProcessor'],
    $process: function(docs) {
      // walk through the modules, take all error references and provide errors area
      moduleMap.forEach(function(module) {
        var group = _(module.components)
          .groupBy('docType')
          .thru(function(groups) {
            if (groups.error) {
              module.components = module.components.filter(function(component) {
                // remove error entries from module
                // errors should not be shown in the main tree
                return 'error' !== component.docType;
              });
 
              // create error entry
              return {
                id: module.id + '.error',
                docType: 'module',
                groupType: 'error',
                moduleName: module.name,
                module: module.name,
                moduleDoc: {},
                area: 'error',
                name: module.name,
                components: groups.error
              };
            }
          }).value();
 
        if (group) {
          docs.push(group);
        }
      });
    }
  };
};