shared method that exits early if everything is generated

This commit is contained in:
Lakedaemon
2016-05-25 15:15:56 +02:00
parent 6765c19d45
commit 4a8801da34
3 changed files with 27 additions and 31 deletions

View File

@@ -678,31 +678,29 @@ class JsGenerator : public BaseGenerator {
// Iterate through all definitions we haven't generate code for (enums,
// structs, and tables) and output them to a single file.
bool generate() {
if (IsEverythingGenerated()) return true;
std::string enum_code, struct_code, exports_code, code;
generateEnums(&enum_code, &exports_code);
generateStructs(&struct_code, &exports_code);
// Only output file-level code if there were any declarations.
if (enum_code.length() || struct_code.length()) {
code +=
"// automatically generated by the FlatBuffers compiler, do not "
"modify\n\n";
code +=
"// automatically generated by the FlatBuffers compiler, do not "
"modify\n\n";
// Generate code for all the namespace declarations.
GenNamespaces(parser_, &code, &exports_code);
// Generate code for all the namespace declarations.
GenNamespaces(parser_, &code, &exports_code);
// Output the main declaration code from above.
code += enum_code;
code += struct_code;
// Output the main declaration code from above.
code += enum_code;
code += struct_code;
if (!exports_code.empty() && !parser_.opts.skip_js_exports) {
code += "// Exports for Node.js and RequireJS\n";
code += exports_code;
}
if (!exports_code.empty() && !parser_.opts.skip_js_exports) {
code += "// Exports for Node.js and RequireJS\n";
code += exports_code;
}
return !code.length() ||
SaveFile(GeneratedFileName(path_, file_name_).c_str(), code, false);
return SaveFile(GeneratedFileName(path_, file_name_).c_str(), code, false);
}
private: