Code coverage report for lib/filter_access.js

Statements: 100% (10 / 10)      Branches: 100% (2 / 2)      Functions: 100% (3 / 3)      Lines: 100% (10 / 10)      Ignored: none     

All files » lib/ » filter_access.js
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    26                       26 65   26 162     26 152 297       65     26  
'use strict';
 
var walk = require('./walk');
 
/**
 * Exclude given access levels from the generated documentation: this allows
 * users to write documentation for non-public members by using the
 * `@private` tag.
 *
 * @public
 * @param {Array<string>} [levels=['private']] excluded access levels.
 * @param {Array<Object>} comments parsed comments (can be nested)
 * @return {Array<Object>} filtered comments
 */
function filterAccess(levels, comments) {
  levels = levels || ['private'];
 
  function filter(comment) {
    return levels.indexOf(comment.access) === -1;
  }
 
  function recurse(comment) {
    for (var scope in comment.members) {
      comment.members[scope] = comment.members[scope].filter(filter);
    }
  }
 
  return walk(comments.filter(filter), recurse);
}
 
module.exports = filterAccess;