}
}
-std::string GenTypeName(const Type &type, bool input) {
+std::string GenTypeName(const Type &type, bool input, bool allowNull = false) {
if (!input) {
- if (type.base_type == BASE_TYPE_STRING) {
- return "string|Uint8Array";
- }
- if (type.base_type == BASE_TYPE_STRUCT) {
- return WrapInNameSpace(*type.struct_def);
+ if (type.base_type == BASE_TYPE_STRING || type.base_type == BASE_TYPE_STRUCT) {
+ std::string name;
+ if (type.base_type == BASE_TYPE_STRING) {
+ name = "string|Uint8Array";
+ } else {
+ name = WrapInNameSpace(*type.struct_def);
+ }
+ return (allowNull) ? (name + "|null") : (name);
}
}
code += " /**\n";
code += " * @type {flatbuffers.ByteBuffer}\n";
code += " */\n";
- code += " bb: flatbuffers.ByteBuffer= null;\n";
+ code += " bb: flatbuffers.ByteBuffer;\n";
code += "\n";
code += " /**\n";
code += " * @type {number}\n";
code += " /**\n";
code += " * @type {flatbuffers.ByteBuffer}\n";
code += " */\n";
- code += " this.bb = null;\n";
+ code += " this.bb = undefined;\n";
code += "\n";
code += " /**\n";
code += " * @type {number}\n";
GenDocComment(field.doc_comment, code_ptr,
std::string(field.value.type.base_type == BASE_TYPE_STRING ?
"@param {flatbuffers.Encoding=} optionalEncoding\n" : "") +
- "@returns {" + GenTypeName(field.value.type, false) + "}");
+ "@returns {" + GenTypeName(field.value.type, false, true) + "}");
if (lang_.language == IDLOptions::kTs) {
std::string prefix = MakeCamel(field.name, false) + "(";
if (field.value.type.base_type == BASE_TYPE_STRING) {
- code += prefix + "):string\n";
+ code += prefix + "):string|null\n";
code += prefix + "optionalEncoding:flatbuffers.Encoding"+"):" +
- GenTypeName(field.value.type, false)+"\n";
+ GenTypeName(field.value.type, false, true)+"\n";
code += prefix + "optionalEncoding?:any";
} else {
code += prefix;
}
if (field.value.type.enum_def) {
code += "):" +
- GenPrefixedTypeName(GenTypeName(field.value.type, false),
+ GenPrefixedTypeName(GenTypeName(field.value.type, false, true),
field.value.type.enum_def->file) + " {\n";
} else {
- code += "):" + GenTypeName(field.value.type, false) + " {\n";
+ code += "):" + GenTypeName(field.value.type, false, true) + " {\n";
}
} else {
code += object_name + ".prototype." + MakeCamel(field.name, false);
case BASE_TYPE_STRUCT: {
auto type = WrapInNameSpace(*field.value.type.struct_def);
GenDocComment(field.doc_comment, code_ptr,
- "@param {" + type + "=} obj\n@returns {" + type + "}");
+ "@param {" + type + "=} obj\n@returns {" + type + "|null}");
if (lang_.language == IDLOptions::kTs) {
type = GenPrefixedTypeName(type, field.value.type.struct_def->file);
code += MakeCamel(field.name, false);
- code += "(obj?:" + type + "):" + type + " {\n";
+ code += "(obj?:" + type + "):" + type + "|null {\n";
} else {
code += object_name + ".prototype." + MakeCamel(field.name, false);
code += " = function(obj) {\n";
} else {
code += prefix;
}
- code += "):" + vectortypename + " {\n";
+ code += "):" + vectortypename + "|null {\n";
} else {
code += object_name + ".prototype." + MakeCamel(field.name, false);
code += " = function(index";
"@returns {?flatbuffers.Table}");
if (lang_.language == IDLOptions::kTs) {
code += MakeCamel(field.name, false);
- code += "<T extends flatbuffers.Table>(obj:T):T {\n";
+ code += "<T extends flatbuffers.Table>(obj:T):T|null {\n";
} else {
code += object_name + ".prototype." + MakeCamel(field.name, false);
code += " = function(obj) {\n";
if (lang_.language == IDLOptions::kTs) {
code += MakeCamel(field.name, false);
- code += "Array():" + GenType(vectorType) + "Array {\n" +
+ code += "Array():" + GenType(vectorType) + "Array|null {\n" +
offset_prefix;
} else {
code += object_name + ".prototype." + MakeCamel(field.name, false);
if (lang_.language == IDLOptions::kTs) {
code += "static create" + struct_def.name + "(builder:flatbuffers.Builder";
- code += arguments + "):flatbuffers.Offset {\n";
+ code += arguments + "):flatbuffers.Offset|null {\n";
} else {
code += object_name + ".create" + struct_def.name + " = function(builder";
code += arguments + ") {\n";
type += " | Uint8Array";
}
code += "Vector(builder:flatbuffers.Builder, data:" + type +
- "):flatbuffers.Offset {\n";
- code += "if(!data){\n return null\n}\n";
+ "):flatbuffers.Offset|null {\n";
+ code += "if(!data){\n return null;\n}\n";
} else {
code += object_name + ".create" + MakeCamel(field.name);
code += "Vector = function(builder, data) {\n";
/**
* @type {flatbuffers.ByteBuffer}
*/
- bb: flatbuffers.ByteBuffer= null;
+ bb: flatbuffers.ByteBuffer;
/**
* @type {number}
/**
* @type {flatbuffers.ByteBuffer}
*/
- bb: flatbuffers.ByteBuffer= null;
+ bb: flatbuffers.ByteBuffer;
/**
* @type {number}
/**
* @type {flatbuffers.ByteBuffer}
*/
- bb: flatbuffers.ByteBuffer= null;
+ bb: flatbuffers.ByteBuffer;
/**
* @type {number}
/**
* @type {flatbuffers.ByteBuffer}
*/
- bb: flatbuffers.ByteBuffer= null;
+ bb: flatbuffers.ByteBuffer;
/**
* @type {number}
/**
* @type {flatbuffers.ByteBuffer}
*/
- bb: flatbuffers.ByteBuffer= null;
+ bb: flatbuffers.ByteBuffer;
/**
* @type {number}
/**
* @type {flatbuffers.ByteBuffer}
*/
- bb: flatbuffers.ByteBuffer= null;
+ bb: flatbuffers.ByteBuffer;
/**
* @type {number}
/**
* @param {flatbuffers.Encoding=} optionalEncoding
- * @returns {string|Uint8Array}
+ * @returns {string|Uint8Array|null}
*/
-id():string
-id(optionalEncoding:flatbuffers.Encoding):string|Uint8Array
+id():string|null
+id(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null
id(optionalEncoding?:any):string|Uint8Array {
var offset = this.bb.__offset(this.bb_pos, 4);
return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
/**
* @type {flatbuffers.ByteBuffer}
*/
- bb: flatbuffers.ByteBuffer= null;
+ bb: flatbuffers.ByteBuffer;
/**
* @type {number}
/**
* @param {flatbuffers.Encoding=} optionalEncoding
- * @returns {string|Uint8Array}
+ * @returns {string|Uint8Array|null}
*/
-name():string
-name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array
+name():string|null
+name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null
name(optionalEncoding?:any):string|Uint8Array {
var offset = this.bb.__offset(this.bb_pos, 10);
return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;