Skip to content

Commit fa87b1c

Browse files
jkelvieblakeembrey
jkelvie
authored andcommitted
Exclude constructor private properties (TypeStrong#300)
1 parent bd2db00 commit fa87b1c

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

src/lib/converter/converter.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,13 @@ export class Converter extends ChildableComponent<Application, ConverterComponen
122122
})
123123
excludeNotExported:boolean;
124124

125+
@Option({
126+
name: "excludePrivate",
127+
help: 'Ignores private variables and methods',
128+
type: ParameterType.Boolean
129+
})
130+
excludePrivate:boolean;
131+
125132
private compilerHost:CompilerHost;
126133

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

src/lib/converter/nodes/class.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,10 @@ import {Reflection, ReflectionKind, DeclarationReflection} from "../../models/in
44
import {createDeclaration} from "../factories/index";
55
import {Context} from "../context";
66
import {Component, ConverterNodeComponent} from "../components";
7-
import {ParameterType} from "../../utils/options/declaration";
8-
import {Option} from "../../utils/component";
9-
107

118
@Component({name:'node:class'})
129
export class ClassConverter extends ConverterNodeComponent<ts.ClassDeclaration>
1310
{
14-
@Option({
15-
name: "excludePrivate",
16-
help: 'Ignores private variables and methods',
17-
type: ParameterType.Boolean
18-
})
19-
excludePrivate:boolean;
2011
/**
2112
* List of supported TypeScript syntax kinds.
2213
*/
@@ -45,7 +36,7 @@ export class ClassConverter extends ConverterNodeComponent<ts.ClassDeclaration>
4536
if (node.members) {
4637
node.members.forEach((member) => {
4738
const privateMember = (member.flags & ts.NodeFlags.Private) > 0;
48-
const exclude = this.excludePrivate ? privateMember : false;
39+
const exclude = context.converter.excludePrivate ? privateMember : false;
4940

5041
if (!exclude) {
5142
this.owner.convertNode(context, member);

src/lib/converter/nodes/constructor.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ export class ConstructorConverter extends ConverterNodeComponent<ts.ConstructorD
6565
var visibility = parameter.flags & (ts.NodeFlags.Public | ts.NodeFlags.Protected | ts.NodeFlags.Private);
6666
if (!visibility) return;
6767

68+
const privateParameter = parameter.flags & ts.NodeFlags.Private;
69+
if (privateParameter && context.converter.excludePrivate) return;
70+
6871
var property = createDeclaration(context, parameter, ReflectionKind.Property);
6972
if (!property) return;
7073

0 commit comments

Comments
 (0)