mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-09 22:56:27 +00:00
[TS] Fix generation of struct members in object api (#7148)
* Fix C/C++ Create<Type>Direct with sorted vectors If a struct has a key the vector has to be sorted. To sort the vector you can't use "const". * Changes due to code review * Improve code readability * Add generate of JSON schema to string to lib * option indent_step is supported * Remove unused variables * Fix break in test * Fix style to be consistent with rest of the code * [TS] Fix reserved words as arguments (#6955) * [TS] Fix generation of reserved words in object api (#7106) * [TS] Fix generation of object api * [TS] Fix MakeCamel -> ConvertCase * [TS] Add test for struct of struct of struct * Update generated files * Add missing files * [TS] Fix query of null/undefined fields in object api
This commit is contained in:
@@ -55,7 +55,7 @@ class TsGenerator : public BaseGenerator {
|
||||
// https://github.com/microsoft/TypeScript/issues/2536
|
||||
// One per line to ease comparisons to that list are easier
|
||||
static const char *const keywords[] = {
|
||||
"argument",
|
||||
"arguments",
|
||||
"break",
|
||||
"case",
|
||||
"catch",
|
||||
@@ -956,15 +956,22 @@ class TsGenerator : public BaseGenerator {
|
||||
it != struct_def.fields.vec.end(); ++it) {
|
||||
auto &field = **it;
|
||||
|
||||
const auto curr_member_accessor =
|
||||
auto curr_member_accessor =
|
||||
prefix + "." + ConvertCase(field.name, Case::kLowerCamel);
|
||||
if (prefix != "this") {
|
||||
curr_member_accessor =
|
||||
prefix + "?." + ConvertCase(field.name, Case::kLowerCamel);
|
||||
}
|
||||
if (IsStruct(field.value.type)) {
|
||||
ret += GenStructMemberValueTS(*field.value.type.struct_def,
|
||||
curr_member_accessor, delimiter);
|
||||
} else {
|
||||
if (nullCheck) {
|
||||
ret +=
|
||||
"(" + prefix + " === null ? 0 : " + curr_member_accessor + "!)";
|
||||
std::string nullValue = "0";
|
||||
if (field.value.type.base_type == BASE_TYPE_BOOL) {
|
||||
nullValue = "false";
|
||||
}
|
||||
ret += "(" + curr_member_accessor + " ?? " + nullValue + ")";
|
||||
} else {
|
||||
ret += curr_member_accessor;
|
||||
}
|
||||
@@ -1067,7 +1074,7 @@ class TsGenerator : public BaseGenerator {
|
||||
parser.opts);
|
||||
|
||||
const std::string field_accessor =
|
||||
"this." + field_name_escaped + "()";
|
||||
"this." + field_name + "()";
|
||||
field_val = GenNullCheckConditional(field_accessor,
|
||||
field_accessor + "!.unpack()");
|
||||
auto packing = GenNullCheckConditional(
|
||||
|
||||
Reference in New Issue
Block a user