Not using non-existent create method for obj api (#6015)
Co-authored-by: Kamil Rojewski <kamil.rojewski@gmail.com>
This commit is contained in:
parent
37a5dee105
commit
ab6af18d9f
|
@ -969,17 +969,30 @@ class JsTsGenerator : public BaseGenerator {
|
||||||
std::string constructor_func = "constructor(";
|
std::string constructor_func = "constructor(";
|
||||||
constructor_func += (struct_def.fields.vec.empty() ? "" : "\n");
|
constructor_func += (struct_def.fields.vec.empty() ? "" : "\n");
|
||||||
|
|
||||||
|
|
||||||
|
const auto has_create = struct_def.fixed || CanCreateFactoryMethod(struct_def);
|
||||||
|
|
||||||
std::string pack_func_prototype =
|
std::string pack_func_prototype =
|
||||||
"/**\n * " +
|
"/**\n * " +
|
||||||
GenTypeAnnotation(kParam, "flatbuffers.Builder", "builder") + " * " +
|
GenTypeAnnotation(kParam, "flatbuffers.Builder", "builder") + " * " +
|
||||||
GenTypeAnnotation(kReturns, "flatbuffers.Offset", "") +
|
GenTypeAnnotation(kReturns, "flatbuffers.Offset", "") +
|
||||||
" */\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n";
|
" */\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n";
|
||||||
|
|
||||||
std::string pack_func_offset_decl;
|
std::string pack_func_offset_decl;
|
||||||
std::string pack_func_create_call =
|
std::string pack_func_create_call;
|
||||||
|
|
||||||
|
const auto struct_name = GenPrefixedTypeName(WrapInNameSpace(struct_def), struct_def.file);
|
||||||
|
|
||||||
|
if (has_create) {
|
||||||
|
pack_func_create_call =
|
||||||
" return " +
|
" return " +
|
||||||
GenPrefixedTypeName(WrapInNameSpace(struct_def), struct_def.file) +
|
struct_name +
|
||||||
".create" + Verbose(struct_def) + "(builder" +
|
".create" + Verbose(struct_def) + "(builder" +
|
||||||
(struct_def.fields.vec.empty() ? "" : ",\n ");
|
(struct_def.fields.vec.empty() ? "" : ",\n ");
|
||||||
|
} else {
|
||||||
|
pack_func_create_call = " " + struct_name + ".start(builder);\n";
|
||||||
|
}
|
||||||
|
|
||||||
if (struct_def.fixed) {
|
if (struct_def.fixed) {
|
||||||
// when packing struct, nested struct's members instead of the struct's
|
// when packing struct, nested struct's members instead of the struct's
|
||||||
// offset are used
|
// offset are used
|
||||||
|
@ -1179,14 +1192,19 @@ class JsTsGenerator : public BaseGenerator {
|
||||||
if (!field_offset_decl.empty()) {
|
if (!field_offset_decl.empty()) {
|
||||||
pack_func_offset_decl += field_offset_decl + "\n";
|
pack_func_offset_decl += field_offset_decl + "\n";
|
||||||
}
|
}
|
||||||
pack_func_create_call += field_offset_val;
|
|
||||||
|
if (has_create) {
|
||||||
|
pack_func_create_call += field_offset_val;
|
||||||
|
} else {
|
||||||
|
pack_func_create_call += " " + struct_name + ".add" + MakeCamel(field.name) + "(builder, " + field_offset_val + ");\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (std::next(it) != struct_def.fields.vec.end()) {
|
if (std::next(it) != struct_def.fields.vec.end()) {
|
||||||
constructor_annotation += "\n";
|
constructor_annotation += "\n";
|
||||||
constructor_func += ",\n";
|
constructor_func += ",\n";
|
||||||
|
|
||||||
if (!struct_def.fixed) { pack_func_create_call += ",\n "; }
|
if (!struct_def.fixed && has_create) { pack_func_create_call += ",\n "; }
|
||||||
|
|
||||||
unpack_func += ",\n";
|
unpack_func += ",\n";
|
||||||
unpack_to_func += "\n";
|
unpack_to_func += "\n";
|
||||||
|
@ -1205,7 +1223,11 @@ class JsTsGenerator : public BaseGenerator {
|
||||||
constructor_annotation += "\n */\n";
|
constructor_annotation += "\n */\n";
|
||||||
constructor_func += "){};\n\n";
|
constructor_func += "){};\n\n";
|
||||||
|
|
||||||
pack_func_create_call += ");";
|
if (has_create) {
|
||||||
|
pack_func_create_call += ");";
|
||||||
|
} else {
|
||||||
|
pack_func_create_call += "return " + struct_name + ".end(builder);";
|
||||||
|
}
|
||||||
|
|
||||||
obj_api_class = "\nexport class " +
|
obj_api_class = "\nexport class " +
|
||||||
GetObjApiClassName(struct_def, parser.opts) + " {\n";
|
GetObjApiClassName(struct_def, parser.opts) + " {\n";
|
||||||
|
|
|
@ -3167,56 +3167,57 @@ pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||||
const anyAmbiguous = builder.createObjectOffset(this.anyAmbiguous);
|
const anyAmbiguous = builder.createObjectOffset(this.anyAmbiguous);
|
||||||
const vectorOfEnums = MyGame.Example.Monster.createVectorOfEnumsVector(builder, this.vectorOfEnums);
|
const vectorOfEnums = MyGame.Example.Monster.createVectorOfEnumsVector(builder, this.vectorOfEnums);
|
||||||
|
|
||||||
return MyGame.Example.Monster.createMonster(builder,
|
MyGame.Example.Monster.start(builder);
|
||||||
(this.pos !== null ? this.pos!.pack(builder) : 0),
|
MyGame.Example.Monster.addPos(builder, (this.pos !== null ? this.pos!.pack(builder) : 0));
|
||||||
this.mana,
|
MyGame.Example.Monster.addMana(builder, this.mana);
|
||||||
this.hp,
|
MyGame.Example.Monster.addHp(builder, this.hp);
|
||||||
name,
|
MyGame.Example.Monster.addName(builder, name);
|
||||||
inventory,
|
MyGame.Example.Monster.addInventory(builder, inventory);
|
||||||
this.color,
|
MyGame.Example.Monster.addColor(builder, this.color);
|
||||||
this.testType,
|
MyGame.Example.Monster.addTestType(builder, this.testType);
|
||||||
test,
|
MyGame.Example.Monster.addTest(builder, test);
|
||||||
test4,
|
MyGame.Example.Monster.addTest4(builder, test4);
|
||||||
testarrayofstring,
|
MyGame.Example.Monster.addTestarrayofstring(builder, testarrayofstring);
|
||||||
testarrayoftables,
|
MyGame.Example.Monster.addTestarrayoftables(builder, testarrayoftables);
|
||||||
(this.enemy !== null ? this.enemy!.pack(builder) : 0),
|
MyGame.Example.Monster.addEnemy(builder, (this.enemy !== null ? this.enemy!.pack(builder) : 0));
|
||||||
testnestedflatbuffer,
|
MyGame.Example.Monster.addTestnestedflatbuffer(builder, testnestedflatbuffer);
|
||||||
(this.testempty !== null ? this.testempty!.pack(builder) : 0),
|
MyGame.Example.Monster.addTestempty(builder, (this.testempty !== null ? this.testempty!.pack(builder) : 0));
|
||||||
this.testbool,
|
MyGame.Example.Monster.addTestbool(builder, this.testbool);
|
||||||
this.testhashs32Fnv1,
|
MyGame.Example.Monster.addTesthashs32Fnv1(builder, this.testhashs32Fnv1);
|
||||||
this.testhashu32Fnv1,
|
MyGame.Example.Monster.addTesthashu32Fnv1(builder, this.testhashu32Fnv1);
|
||||||
this.testhashs64Fnv1,
|
MyGame.Example.Monster.addTesthashs64Fnv1(builder, this.testhashs64Fnv1);
|
||||||
this.testhashu64Fnv1,
|
MyGame.Example.Monster.addTesthashu64Fnv1(builder, this.testhashu64Fnv1);
|
||||||
this.testhashs32Fnv1a,
|
MyGame.Example.Monster.addTesthashs32Fnv1a(builder, this.testhashs32Fnv1a);
|
||||||
this.testhashu32Fnv1a,
|
MyGame.Example.Monster.addTesthashu32Fnv1a(builder, this.testhashu32Fnv1a);
|
||||||
this.testhashs64Fnv1a,
|
MyGame.Example.Monster.addTesthashs64Fnv1a(builder, this.testhashs64Fnv1a);
|
||||||
this.testhashu64Fnv1a,
|
MyGame.Example.Monster.addTesthashu64Fnv1a(builder, this.testhashu64Fnv1a);
|
||||||
testarrayofbools,
|
MyGame.Example.Monster.addTestarrayofbools(builder, testarrayofbools);
|
||||||
this.testf,
|
MyGame.Example.Monster.addTestf(builder, this.testf);
|
||||||
this.testf2,
|
MyGame.Example.Monster.addTestf2(builder, this.testf2);
|
||||||
this.testf3,
|
MyGame.Example.Monster.addTestf3(builder, this.testf3);
|
||||||
testarrayofstring2,
|
MyGame.Example.Monster.addTestarrayofstring2(builder, testarrayofstring2);
|
||||||
testarrayofsortedstruct,
|
MyGame.Example.Monster.addTestarrayofsortedstruct(builder, testarrayofsortedstruct);
|
||||||
flex,
|
MyGame.Example.Monster.addFlex(builder, flex);
|
||||||
test5,
|
MyGame.Example.Monster.addTest5(builder, test5);
|
||||||
vectorOfLongs,
|
MyGame.Example.Monster.addVectorOfLongs(builder, vectorOfLongs);
|
||||||
vectorOfDoubles,
|
MyGame.Example.Monster.addVectorOfDoubles(builder, vectorOfDoubles);
|
||||||
(this.parentNamespaceTest !== null ? this.parentNamespaceTest!.pack(builder) : 0),
|
MyGame.Example.Monster.addParentNamespaceTest(builder, (this.parentNamespaceTest !== null ? this.parentNamespaceTest!.pack(builder) : 0));
|
||||||
vectorOfReferrables,
|
MyGame.Example.Monster.addVectorOfReferrables(builder, vectorOfReferrables);
|
||||||
this.singleWeakReference,
|
MyGame.Example.Monster.addSingleWeakReference(builder, this.singleWeakReference);
|
||||||
vectorOfWeakReferences,
|
MyGame.Example.Monster.addVectorOfWeakReferences(builder, vectorOfWeakReferences);
|
||||||
vectorOfStrongReferrables,
|
MyGame.Example.Monster.addVectorOfStrongReferrables(builder, vectorOfStrongReferrables);
|
||||||
this.coOwningReference,
|
MyGame.Example.Monster.addCoOwningReference(builder, this.coOwningReference);
|
||||||
vectorOfCoOwningReferences,
|
MyGame.Example.Monster.addVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences);
|
||||||
this.nonOwningReference,
|
MyGame.Example.Monster.addNonOwningReference(builder, this.nonOwningReference);
|
||||||
vectorOfNonOwningReferences,
|
MyGame.Example.Monster.addVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences);
|
||||||
this.anyUniqueType,
|
MyGame.Example.Monster.addAnyUniqueType(builder, this.anyUniqueType);
|
||||||
anyUnique,
|
MyGame.Example.Monster.addAnyUnique(builder, anyUnique);
|
||||||
this.anyAmbiguousType,
|
MyGame.Example.Monster.addAnyAmbiguousType(builder, this.anyAmbiguousType);
|
||||||
anyAmbiguous,
|
MyGame.Example.Monster.addAnyAmbiguous(builder, anyAmbiguous);
|
||||||
vectorOfEnums,
|
MyGame.Example.Monster.addVectorOfEnums(builder, vectorOfEnums);
|
||||||
this.signedEnum
|
MyGame.Example.Monster.addSignedEnum(builder, this.signedEnum);
|
||||||
);
|
|
||||||
|
return MyGame.Example.Monster.end(builder);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,11 +160,12 @@ constructor(
|
||||||
* @returns flatbuffers.Offset
|
* @returns flatbuffers.Offset
|
||||||
*/
|
*/
|
||||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||||
return NamespaceA.TableInFirstNS.createTableInFirstNS(builder,
|
NamespaceA.TableInFirstNS.start(builder);
|
||||||
(this.fooTable !== null ? this.fooTable!.pack(builder) : 0),
|
NamespaceA.TableInFirstNS.addFooTable(builder, (this.fooTable !== null ? this.fooTable!.pack(builder) : 0));
|
||||||
this.fooEnum,
|
NamespaceA.TableInFirstNS.addFooEnum(builder, this.fooEnum);
|
||||||
(this.fooStruct !== null ? this.fooStruct!.pack(builder) : 0)
|
NamespaceA.TableInFirstNS.addFooStruct(builder, (this.fooStruct !== null ? this.fooStruct!.pack(builder) : 0));
|
||||||
);
|
|
||||||
|
return NamespaceA.TableInFirstNS.end(builder);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,10 +293,11 @@ constructor(
|
||||||
* @returns flatbuffers.Offset
|
* @returns flatbuffers.Offset
|
||||||
*/
|
*/
|
||||||
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
|
||||||
return NamespaceC.TableInC.createTableInC(builder,
|
NamespaceC.TableInC.start(builder);
|
||||||
(this.referToA1 !== null ? this.referToA1!.pack(builder) : 0),
|
NamespaceC.TableInC.addReferToA1(builder, (this.referToA1 !== null ? this.referToA1!.pack(builder) : 0));
|
||||||
(this.referToA2 !== null ? this.referToA2!.pack(builder) : 0)
|
NamespaceC.TableInC.addReferToA2(builder, (this.referToA2 !== null ? this.referToA2!.pack(builder) : 0));
|
||||||
);
|
|
||||||
|
return NamespaceC.TableInC.end(builder);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue