mirror of
https://github.com/documentationjs/documentation.git
synced 2026-01-25 14:26:29 +00:00
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
41 lines
858 B
JavaScript
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();
|
|
});
|