mirror of
https://github.com/google/flatbuffers.git
synced 2026-07-05 09:07:03 +00:00
Renamed JS generator to explicitly state it generates TS too (#5043)
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
80d148b175
commit
30c4948541
2
BUILD
2
BUILD
@@ -86,7 +86,7 @@ cc_binary(
|
|||||||
"src/idl_gen_general.cpp",
|
"src/idl_gen_general.cpp",
|
||||||
"src/idl_gen_go.cpp",
|
"src/idl_gen_go.cpp",
|
||||||
"src/idl_gen_grpc.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_json_schema.cpp",
|
||||||
"src/idl_gen_lua.cpp",
|
"src/idl_gen_lua.cpp",
|
||||||
"src/idl_gen_lobster.cpp",
|
"src/idl_gen_lobster.cpp",
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ option(FLATBUFFERS_BUILD_SHAREDLIB
|
|||||||
OFF)
|
OFF)
|
||||||
option(FLATBUFFERS_LIBCXX_WITH_CLANG "Force libc++ when using Clang" ON)
|
option(FLATBUFFERS_LIBCXX_WITH_CLANG "Force libc++ when using Clang" ON)
|
||||||
# NOTE: Sanitizer check only works on Linux & OSX (gcc & llvm).
|
# 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."
|
"Add '-fsanitize' flags to 'flattests' and 'flatc' targets."
|
||||||
OFF)
|
OFF)
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ set(FlatBuffers_Compiler_SRCS
|
|||||||
src/idl_gen_dart.cpp
|
src/idl_gen_dart.cpp
|
||||||
src/idl_gen_general.cpp
|
src/idl_gen_general.cpp
|
||||||
src/idl_gen_go.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_php.cpp
|
||||||
src/idl_gen_python.cpp
|
src/idl_gen_python.cpp
|
||||||
src/idl_gen_lobster.cpp
|
src/idl_gen_lobster.cpp
|
||||||
@@ -218,7 +218,7 @@ function(add_fsanitize_to_target _target _sanitizer)
|
|||||||
# override default by user-defined sanitizer list
|
# override default by user-defined sanitizer list
|
||||||
set(_sanitizer_flags ${_sanitizer})
|
set(_sanitizer_flags ${_sanitizer})
|
||||||
endif()
|
endif()
|
||||||
target_compile_options(${_target} PRIVATE
|
target_compile_options(${_target} PRIVATE
|
||||||
-g -fsigned-char -fno-omit-frame-pointer
|
-g -fsigned-char -fno-omit-frame-pointer
|
||||||
"-fsanitize${_sanitizer_flags}")
|
"-fsanitize${_sanitizer_flags}")
|
||||||
target_link_libraries(${_target} PRIVATE
|
target_link_libraries(${_target} PRIVATE
|
||||||
|
|||||||
@@ -820,7 +820,7 @@ extern bool GenerateDart(const Parser &parser,
|
|||||||
|
|
||||||
// Generate JavaScript or TypeScript code from the definitions in the Parser object.
|
// Generate JavaScript or TypeScript code from the definitions in the Parser object.
|
||||||
// See idl_gen_js.
|
// See idl_gen_js.
|
||||||
extern bool GenerateJS(const Parser &parser,
|
extern bool GenerateJSTS(const Parser &parser,
|
||||||
const std::string &path,
|
const std::string &path,
|
||||||
const std::string &file_name);
|
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.
|
// Generate a make rule for the generated JavaScript or TypeScript code.
|
||||||
// See idl_gen_js.cpp.
|
// 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 &path,
|
||||||
const std::string &file_name);
|
const std::string &file_name);
|
||||||
|
|
||||||
|
|||||||
@@ -55,15 +55,15 @@ int main(int argc, const char *argv[]) {
|
|||||||
flatbuffers::GenerateJavaGRPC, flatbuffers::IDLOptions::kJava,
|
flatbuffers::GenerateJavaGRPC, flatbuffers::IDLOptions::kJava,
|
||||||
"Generate Java classes for tables/structs",
|
"Generate Java classes for tables/structs",
|
||||||
flatbuffers::GeneralMakeRule },
|
flatbuffers::GeneralMakeRule },
|
||||||
{ flatbuffers::GenerateJS, "-s", "--js", "JavaScript", true, nullptr,
|
{ flatbuffers::GenerateJSTS, "-s", "--js", "JavaScript", true, nullptr,
|
||||||
flatbuffers::IDLOptions::kJs,
|
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::GenerateDart, "-d", "--dart", "Dart", true, nullptr,
|
||||||
flatbuffers::IDLOptions::kDart,
|
flatbuffers::IDLOptions::kDart,
|
||||||
"Generate Dart classes for tables/structs", flatbuffers::DartMakeRule },
|
"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,
|
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::GenerateGeneral, "-n", "--csharp", "C#", true, nullptr,
|
||||||
flatbuffers::IDLOptions::kCSharp,
|
flatbuffers::IDLOptions::kCSharp,
|
||||||
"Generate C# classes for tables/structs", flatbuffers::GeneralMakeRule },
|
"Generate C# classes for tables/structs", flatbuffers::GeneralMakeRule },
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace flatbuffers {
|
|||||||
|
|
||||||
const std::string kGeneratedFileNamePostfix = "_generated";
|
const std::string kGeneratedFileNamePostfix = "_generated";
|
||||||
|
|
||||||
struct JsLanguageParameters {
|
struct JsTsLanguageParameters {
|
||||||
IDLOptions::Language language;
|
IDLOptions::Language language;
|
||||||
std::string file_extension;
|
std::string file_extension;
|
||||||
};
|
};
|
||||||
@@ -41,8 +41,8 @@ struct ReexportDescription {
|
|||||||
|
|
||||||
enum AnnotationType { kParam = 0, kType = 1, kReturns = 2 };
|
enum AnnotationType { kParam = 0, kType = 1, kReturns = 2 };
|
||||||
|
|
||||||
const JsLanguageParameters &GetJsLangParams(IDLOptions::Language lang) {
|
const JsTsLanguageParameters &GetJsLangParams(IDLOptions::Language lang) {
|
||||||
static JsLanguageParameters js_language_parameters[] = {
|
static JsTsLanguageParameters js_language_parameters[] = {
|
||||||
{
|
{
|
||||||
IDLOptions::kJs,
|
IDLOptions::kJs,
|
||||||
".js",
|
".js",
|
||||||
@@ -63,20 +63,20 @@ const JsLanguageParameters &GetJsLangParams(IDLOptions::Language lang) {
|
|||||||
|
|
||||||
static std::string GeneratedFileName(const std::string &path,
|
static std::string GeneratedFileName(const std::string &path,
|
||||||
const std::string &file_name,
|
const std::string &file_name,
|
||||||
const JsLanguageParameters &lang) {
|
const JsTsLanguageParameters &lang) {
|
||||||
return path + file_name + kGeneratedFileNamePostfix + lang.file_extension;
|
return path + file_name + kGeneratedFileNamePostfix + lang.file_extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace js {
|
namespace jsts {
|
||||||
// Iterate through all definitions we haven't generate code for (enums, structs,
|
// Iterate through all definitions we haven't generate code for (enums, structs,
|
||||||
// and tables) and output them to a single file.
|
// and tables) and output them to a single file.
|
||||||
class JsGenerator : public BaseGenerator {
|
class JsTsGenerator : public BaseGenerator {
|
||||||
public:
|
public:
|
||||||
typedef std::unordered_set<std::string> imported_fileset;
|
typedef std::unordered_set<std::string> imported_fileset;
|
||||||
typedef std::unordered_multimap<std::string, ReexportDescription>
|
typedef std::unordered_multimap<std::string, ReexportDescription>
|
||||||
reexport_map;
|
reexport_map;
|
||||||
|
|
||||||
JsGenerator(const Parser &parser, const std::string &path,
|
JsTsGenerator(const Parser &parser, const std::string &path,
|
||||||
const std::string &file_name)
|
const std::string &file_name)
|
||||||
: BaseGenerator(parser, path, file_name, "", "."),
|
: BaseGenerator(parser, path, file_name, "", "."),
|
||||||
lang_(GetJsLangParams(parser_.opts.lang)){};
|
lang_(GetJsLangParams(parser_.opts.lang)){};
|
||||||
@@ -117,7 +117,7 @@ class JsGenerator : public BaseGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
JsLanguageParameters lang_;
|
JsTsLanguageParameters lang_;
|
||||||
|
|
||||||
// Generate code for imports
|
// Generate code for imports
|
||||||
void generateImportDependencies(std::string *code_ptr,
|
void generateImportDependencies(std::string *code_ptr,
|
||||||
@@ -1308,15 +1308,15 @@ class JsGenerator : public BaseGenerator {
|
|||||||
return argname;
|
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) {
|
const std::string &file_name) {
|
||||||
js::JsGenerator generator(parser, path, file_name);
|
jsts::JsTsGenerator generator(parser, path, file_name);
|
||||||
return generator.generate();
|
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) {
|
const std::string &file_name) {
|
||||||
FLATBUFFERS_ASSERT(parser.opts.lang <= IDLOptions::kMAX);
|
FLATBUFFERS_ASSERT(parser.opts.lang <= IDLOptions::kMAX);
|
||||||
const auto &lang = GetJsLangParams(parser.opts.lang);
|
const auto &lang = GetJsLangParams(parser.opts.lang);
|
||||||
Reference in New Issue
Block a user