Erik Arvidsson 629ea6f3a8 Add support for inferring private based on the name
This adds a command line flag called `--infer-private` which is a
string (defaults to `^_`) which is used as a regexp for inferring
if a name is private or not.

For example:

```js
/** C */
class C {
  /** I'm public */
  m() {}
  /** I'm private */
  _p() {}
}
```

Fixes #436
2016-06-01 14:40:08 -07:00

41 lines
858 B
JavaScript

'use strict';
var test = require('tap').test,
parse = require('../../../lib/parsers/javascript'),
inferName = require('../../../lib/infer/name')(),
inferAccess = require('../../../lib/infer/access');
function toComment(fn) {
return parse({
source: '(' + fn.toString() + ')'
})[0];
}
function evaluate(fn, re) {
return inferAccess(re)(inferName(toComment(fn)));
}
test('inferAccess', function (t) {
t.equal(evaluate(function () {
/** Test */
function _name() {}
}, '^_').access, 'private');
t.equal(evaluate(function () {
/** @private */
function name() {}
}, '^_').access, 'private');
t.equal(evaluate(function () {
/** @public */
function _name() {}
}, '^_').access, 'public');
t.equal(evaluate(function () {
/** Test */
function name_() {}
}, '_$').access, 'private');
t.end();
});