From 30c49485415c7b22937142447cdb1837a921c172 Mon Sep 17 00:00:00 2001 From: Kamil Rojewski Date: Thu, 6 Dec 2018 20:12:06 +0100 Subject: [PATCH] Renamed JS generator to explicitly state it generates TS too (#5043) --- BUILD | 2 +- CMakeLists.txt | 6 +++--- include/flatbuffers/idl.h | 4 ++-- src/flatc_main.cpp | 8 ++++---- src/{idl_gen_js.cpp => idl_gen_js_ts.cpp} | 24 +++++++++++------------ 5 files changed, 22 insertions(+), 22 deletions(-) rename src/{idl_gen_js.cpp => idl_gen_js_ts.cpp} (98%) diff --git a/BUILD b/BUILD index 2ba146664..4d748c5f7 100644 --- a/BUILD +++ b/BUILD @@ -86,7 +86,7 @@ cc_binary( "src/idl_gen_general.cpp", "src/idl_gen_go.cpp", "src/idl_gen_grpc.cpp", - "src/idl_gen_js.cpp", + "src/idl_gen_js_ts.cpp", "src/idl_gen_json_schema.cpp", "src/idl_gen_lua.cpp", "src/idl_gen_lobster.cpp", diff --git a/CMakeLists.txt b/CMakeLists.txt index 7422326e2..389596e4f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ option(FLATBUFFERS_BUILD_SHAREDLIB OFF) option(FLATBUFFERS_LIBCXX_WITH_CLANG "Force libc++ when using Clang" ON) # NOTE: Sanitizer check only works on Linux & OSX (gcc & llvm). -option(FLATBUFFERS_CODE_SANITIZE +option(FLATBUFFERS_CODE_SANITIZE "Add '-fsanitize' flags to 'flattests' and 'flatc' targets." OFF) @@ -72,7 +72,7 @@ set(FlatBuffers_Compiler_SRCS src/idl_gen_dart.cpp src/idl_gen_general.cpp src/idl_gen_go.cpp - src/idl_gen_js.cpp + src/idl_gen_js_ts.cpp src/idl_gen_php.cpp src/idl_gen_python.cpp src/idl_gen_lobster.cpp @@ -218,7 +218,7 @@ function(add_fsanitize_to_target _target _sanitizer) # override default by user-defined sanitizer list set(_sanitizer_flags ${_sanitizer}) endif() - target_compile_options(${_target} PRIVATE + target_compile_options(${_target} PRIVATE -g -fsigned-char -fno-omit-frame-pointer "-fsanitize${_sanitizer_flags}") target_link_libraries(${_target} PRIVATE diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 2e6bc513a..18e1db9d5 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -820,7 +820,7 @@ extern bool GenerateDart(const Parser &parser, // Generate JavaScript or TypeScript code from the definitions in the Parser object. // See idl_gen_js. -extern bool GenerateJS(const Parser &parser, +extern bool GenerateJSTS(const Parser &parser, const std::string &path, const std::string &file_name); @@ -882,7 +882,7 @@ extern bool GenerateFBS(const Parser &parser, // Generate a make rule for the generated JavaScript or TypeScript code. // See idl_gen_js.cpp. -extern std::string JSMakeRule(const Parser &parser, +extern std::string JSTSMakeRule(const Parser &parser, const std::string &path, const std::string &file_name); diff --git a/src/flatc_main.cpp b/src/flatc_main.cpp index c632fe276..78e66a6f6 100644 --- a/src/flatc_main.cpp +++ b/src/flatc_main.cpp @@ -55,15 +55,15 @@ int main(int argc, const char *argv[]) { flatbuffers::GenerateJavaGRPC, flatbuffers::IDLOptions::kJava, "Generate Java classes for tables/structs", flatbuffers::GeneralMakeRule }, - { flatbuffers::GenerateJS, "-s", "--js", "JavaScript", true, nullptr, + { flatbuffers::GenerateJSTS, "-s", "--js", "JavaScript", true, nullptr, flatbuffers::IDLOptions::kJs, - "Generate JavaScript code for tables/structs", flatbuffers::JSMakeRule }, + "Generate JavaScript code for tables/structs", flatbuffers::JSTSMakeRule }, { flatbuffers::GenerateDart, "-d", "--dart", "Dart", true, nullptr, flatbuffers::IDLOptions::kDart, "Generate Dart classes for tables/structs", flatbuffers::DartMakeRule }, - { flatbuffers::GenerateJS, "-T", "--ts", "TypeScript", true, nullptr, + { flatbuffers::GenerateJSTS, "-T", "--ts", "TypeScript", true, nullptr, flatbuffers::IDLOptions::kTs, - "Generate TypeScript code for tables/structs", flatbuffers::JSMakeRule }, + "Generate TypeScript code for tables/structs", flatbuffers::JSTSMakeRule }, { flatbuffers::GenerateGeneral, "-n", "--csharp", "C#", true, nullptr, flatbuffers::IDLOptions::kCSharp, "Generate C# classes for tables/structs", flatbuffers::GeneralMakeRule }, diff --git a/src/idl_gen_js.cpp b/src/idl_gen_js_ts.cpp similarity index 98% rename from src/idl_gen_js.cpp rename to src/idl_gen_js_ts.cpp index 9f8f2ce57..a2d40a4f8 100644 --- a/src/idl_gen_js.cpp +++ b/src/idl_gen_js_ts.cpp @@ -28,7 +28,7 @@ namespace flatbuffers { const std::string kGeneratedFileNamePostfix = "_generated"; -struct JsLanguageParameters { +struct JsTsLanguageParameters { IDLOptions::Language language; std::string file_extension; }; @@ -41,8 +41,8 @@ struct ReexportDescription { enum AnnotationType { kParam = 0, kType = 1, kReturns = 2 }; -const JsLanguageParameters &GetJsLangParams(IDLOptions::Language lang) { - static JsLanguageParameters js_language_parameters[] = { +const JsTsLanguageParameters &GetJsLangParams(IDLOptions::Language lang) { + static JsTsLanguageParameters js_language_parameters[] = { { IDLOptions::kJs, ".js", @@ -63,20 +63,20 @@ const JsLanguageParameters &GetJsLangParams(IDLOptions::Language lang) { static std::string GeneratedFileName(const std::string &path, const std::string &file_name, - const JsLanguageParameters &lang) { + const JsTsLanguageParameters &lang) { return path + file_name + kGeneratedFileNamePostfix + lang.file_extension; } -namespace js { +namespace jsts { // Iterate through all definitions we haven't generate code for (enums, structs, // and tables) and output them to a single file. -class JsGenerator : public BaseGenerator { +class JsTsGenerator : public BaseGenerator { public: typedef std::unordered_set imported_fileset; typedef std::unordered_multimap reexport_map; - JsGenerator(const Parser &parser, const std::string &path, + JsTsGenerator(const Parser &parser, const std::string &path, const std::string &file_name) : BaseGenerator(parser, path, file_name, "", "."), lang_(GetJsLangParams(parser_.opts.lang)){}; @@ -117,7 +117,7 @@ class JsGenerator : public BaseGenerator { } private: - JsLanguageParameters lang_; + JsTsLanguageParameters lang_; // Generate code for imports void generateImportDependencies(std::string *code_ptr, @@ -1308,15 +1308,15 @@ class JsGenerator : public BaseGenerator { return argname; } }; -} // namespace js +} // namespace jsts -bool GenerateJS(const Parser &parser, const std::string &path, +bool GenerateJSTS(const Parser &parser, const std::string &path, const std::string &file_name) { - js::JsGenerator generator(parser, path, file_name); + jsts::JsTsGenerator generator(parser, path, file_name); return generator.generate(); } -std::string JSMakeRule(const Parser &parser, const std::string &path, +std::string JSTSMakeRule(const Parser &parser, const std::string &path, const std::string &file_name) { FLATBUFFERS_ASSERT(parser.opts.lang <= IDLOptions::kMAX); const auto &lang = GetJsLangParams(parser.opts.lang);