all files / packages/navigation/processors/nav-area-mapper/ error.js

41.18% Statements 7/17
0% Branches 0/2
20% Functions 1/5
41.18% Lines 7/17
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 49 50 51 52 53 54 55 56 57 58 59 60                                                                                                         
'use strict';
 
var _ = require('lodash');
 
module.exports = function navigationMapper_ERROR(aliasMap, log) {
 
  var debug = log.debug;
 
  function errorMapper (pages, key) {
    var res = {
      name: 'Errors',
      title: 'Error Reference',
      type: 'groups',
      href: key,
      navItems: []
    };
    _(pages)
      .filter('module')  // take only the modules on the top level
      .sortBy('module')  // alphabetic sort
      .groupBy('module') // group by name
      .forEach(function (components, moduleName) {
        debug('Processing module: %s', moduleName);
        var mod = _.find(components, {name: moduleName, module: moduleName});
 
        var navGroup = {
          name: moduleName,
          type: 'section',
          href: mod.path, // 'api/' + moduleName, // conforms path calculation in docgen.js
          navItems: []
        };
        res.navItems.push(navGroup);
 
        _(components)
        .filter(function (it) {
          return it.docType !== 'module' && it.docType != 'overview';
        })
        .sortBy('name')
        .forEach(function (error) {
          navGroup.navItems.push({
            name: error.name,
            type: error.docType,
            href: error.path,
          });
        });
      });
 
    return [res];
  };
 
  Object.defineProperty(errorMapper, 'area', {
    value: 'error'
  });
 
  Object.defineProperty(errorMapper, 'title', {
    value: 'Errors'
  });
 
  return errorMapper;
};