@@ -420,6 +420,8 @@ module.exports = function(ast, extra) {
420
420
return null ;
421
421
}
422
422
423
+ var accessibility ;
424
+
423
425
var result = {
424
426
type : "" ,
425
427
range : [ node . getStart ( ) , node . end ] ,
@@ -498,6 +500,31 @@ module.exports = function(ast, extra) {
498
500
} ;
499
501
}
500
502
503
+ /**
504
+ * Gets a TSNode's accessibility level
505
+ * @returns {string } accessibility "public", "protected", or "private"
506
+ */
507
+ function getTSNodeAccessibility ( ) {
508
+ var modifiers = node . modifiers ;
509
+ if ( ! modifiers ) {
510
+ return "" ;
511
+ }
512
+ for ( var i = 0 ; i < modifiers . length ; i ++ ) {
513
+ var modifier = modifiers [ i ] ;
514
+ switch ( modifier . kind ) {
515
+ case SyntaxKind . PublicKeyword :
516
+ return "public" ;
517
+ case SyntaxKind . ProtectedKeyword :
518
+ return "protected" ;
519
+ case SyntaxKind . PrivateKeyword :
520
+ return "private" ;
521
+ default :
522
+ continue ;
523
+ }
524
+ }
525
+ return "" ;
526
+ }
527
+
501
528
/**
502
529
* Converts a TSNode's typeParameters array to a flow-like TypeParameterDeclaration node
503
530
* @param {TSNode[] } typeParameters TSNode typeParameters
@@ -988,6 +1015,11 @@ module.exports = function(ast, extra) {
988
1015
return convertChild ( d . expression ) ;
989
1016
} ) : [ ]
990
1017
} ) ;
1018
+
1019
+ accessibility = getTSNodeAccessibility ( ) ;
1020
+ if ( accessibility ) {
1021
+ result . accessibility = accessibility ;
1022
+ }
991
1023
break ;
992
1024
993
1025
case SyntaxKind . GetAccessor :
@@ -1073,6 +1105,11 @@ module.exports = function(ast, extra) {
1073
1105
1074
1106
}
1075
1107
1108
+ accessibility = getTSNodeAccessibility ( ) ;
1109
+ if ( accessibility ) {
1110
+ result . accessibility = accessibility ;
1111
+ }
1112
+
1076
1113
if ( node . kind === SyntaxKind . GetAccessor ) {
1077
1114
result . kind = "get" ;
1078
1115
} else if ( node . kind === SyntaxKind . SetAccessor ) {
0 commit comments