Skip to content

Commit fac893e

Browse files
committed
fix ast-parser traversal to respect plugin dirs where the 'sbgTraverseChildrenDirs' is present in the package.json
1 parent 49adb7e commit fac893e

1 file changed

Lines changed: 30 additions & 21 deletions

File tree

  • build/project-template-gradle/build-tools/android-static-binding-generator/ast-parser

build/project-template-gradle/build-tools/android-static-binding-generator/ast-parser/js_parser.js

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
///////////////// CONFIGURATION /////////////////
1111

12-
var disableLogger = true;
12+
var disableLogger = false;
1313
if (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

Comments
 (0)