99
1010///////////////// CONFIGURATION /////////////////
1111
12- var disableLogger = true ;
12+ var disableLogger = false ;
1313if ( process . env . AST_PARSER_DISABLE_LOGGING && process . env . AST_PARSER_DISABLE_LOGGING . trim ( ) === "true" ) {
1414 disableLogger = true ;
1515}
@@ -40,7 +40,8 @@ var fs = require("fs"),
4040 inputDir = "input_parced_typescript" , // default input folder
4141 interfacesNamesFilePath = "../interfaces-names.txt" , //default interace_names file path
4242 interfaceNames = [ ] ,
43- rootTraversed = false ;
43+ rootTraversed = false ,
44+ explicitTraversalKey = "sbgTraverseChildrenDirs" ;
4445
4546
4647//env variables
@@ -83,35 +84,43 @@ var traverseAndAnalyseFilesDir = function (filesDir) {
8384 throw "The input dir: " + filesDir + " does not exist!" ;
8485 }
8586
86- traverseDirectory ( filesDir ) ;
87+ traverseDirectory ( filesDir , false ) ;
8788}
8889
89- function traverseDirectory ( dir ) {
90+ function traverseDirectory ( dir , traverseExplicitly ) {
9091 // list all files in directory
9192
9293 fs . readdir ( dir , function ( err , files ) {
9394 var pJsonFile ;
9495
95- if ( rootTraversed || dir !== inputDir ) {
96- for ( var i = 0 ; i < files . length ; i ++ ) {
97- if ( files [ i ] === "package.json" ) {
98- pJsonFile = true ;
99- break ;
96+ if ( ! traverseExplicitly ) {
97+ if ( rootTraversed || dir !== inputDir ) {
98+ for ( var i = 0 ; i < files . length ; i ++ ) {
99+ if ( files [ i ] === "package.json" ) {
100+ pJsonFile = true ;
101+ break ;
102+ }
100103 }
101- }
102104
103- if ( pJsonFile ) {
104- var fullPJsonPath = path . join ( dir , "package.json" ) ;
105- var pjson = require ( fullPJsonPath ) ;
106- if ( ! pjson . nativescript ) {
107- // if (pjson.nativescript.sbgShouldNotVisit && pjson.nativescript.platforms) {
108- // return;
109- // }
110- return ;
105+ if ( pJsonFile ) {
106+ var fullPJsonPath = path . join ( dir , "package.json" ) ;
107+ var pjson = require ( fullPJsonPath ) ;
108+ if ( ! pjson . nativescript ) {
109+ // if (pjson.nativescript.sbgShouldNotVisit && pjson.nativescript.platforms) {
110+ // return;
111+ // }
112+ logger . info ( "Skipping traversal of folder " + dir ) ;
113+ return ;
114+ } else {
115+ if ( pjson . nativescript . sbgTraverseChildrenDirs ) {
116+ logger . info ( "Folder will be traversed completely: " + dir ) ;
117+ traverseExplicitly = true ;
118+ }
119+ }
111120 }
121+ } else {
122+ rootTraversed = true ;
112123 }
113- } else {
114- rootTraversed = true ;
115124 }
116125
117126 for ( var i = 0 ; i < files . length ; i += 1 ) {
@@ -131,7 +140,7 @@ function traverseDirectory(dir) {
131140 var isDir = fs . statSync ( file ) . isDirectory ( ) ;
132141
133142 if ( isDir ) {
134- traverseDirectory ( file ) ;
143+ traverseDirectory ( file , traverseExplicitly ) ;
135144 }
136145 }
137146 } ) ;
0 commit comments