Skip to content

Commit 32bf528

Browse files
shabbir-genetechaciccarello
authored andcommitted
Implemented '--excludeProtected' option similar to the '--excludePriv… (TypeStrong#666)
Implemented '--excludeProtected' option similar to the '--excludePrivate' option.
1 parent e9b866e commit 32bf528

File tree

5 files changed

+19
-1
lines changed

5 files changed

+19
-1
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ in order to change the behaviour of TypeDoc.
6767
Prevent externally resolved TypeScript files from being documented.
6868
* `--excludePrivate`<br>
6969
Prevent private members from being included in the generated documentation.
70+
* `--excludeProtected`<br>
71+
Prevent protected members from being included in the generated documentation.
7072

7173
#### TypeScript compiler
7274
* `--module <commonjs, amd, system or umd>`<br>

src/lib/converter/converter.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,13 @@ export class Converter extends ChildableComponent<Application, ConverterComponen
7474
})
7575
excludePrivate: boolean;
7676

77+
@Option({
78+
name: 'excludeProtected',
79+
help: 'Ignores protected variables and methods',
80+
type: ParameterType.Boolean
81+
})
82+
excludeProtected: boolean;
83+
7784
private compilerHost: CompilerHost;
7885

7986
private nodeConverters: {[syntaxKind: number]: ConverterNodeComponent<ts.Node>};

src/lib/converter/nodes/class.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ export class ClassConverter extends ConverterNodeComponent<ts.ClassDeclaration>
4040
node.members.forEach((member) => {
4141
const modifiers = ts.getCombinedModifierFlags(member);
4242
const privateMember = (modifiers & ts.ModifierFlags.Private) > 0;
43-
const exclude = context.converter.excludePrivate ? privateMember : false;
43+
const protectedMember = (modifiers & ts.ModifierFlags.Protected) > 0;
44+
const exclude = (context.converter.excludePrivate && privateMember)
45+
|| (context.converter.excludeProtected && protectedMember);
4446

4547
if (!exclude) {
4648
this.owner.convertNode(context, member);

src/lib/converter/nodes/constructor.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ export class ConstructorConverter extends ConverterNodeComponent<ts.ConstructorD
7373
return;
7474
}
7575

76+
const protectedParameter = modifiers & ts.ModifierFlags.Protected;
77+
if (protectedParameter && context.converter.excludeProtected) {
78+
return;
79+
}
80+
7681
const property = createDeclaration(context, parameter, ReflectionKind.Property);
7782
if (!property) {
7883
return;

src/test/renderer/specs/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ <h4 id="source-file-handling">Source file handling</h4>
118118
Prevent externally resolved TypeScript files from being documented.</li>
119119
<li><code>--excludePrivate</code><br>
120120
Prevent private members from being included in the generated documentation.</li>
121+
<li><code>--excludeProtected</code><br>
122+
Prevent protected members from being included in the generated documentation.</li>
121123
</ul>
122124
<h4 id="typescript-compiler">TypeScript compiler</h4>
123125
<ul>

0 commit comments

Comments
 (0)