[ts] Fix empty source/dest namespaces when reexporting. (#5841)

When either source or destination or both namespaces were empty, flatc
was generating incorrect TS code.

For example:

```
export namespace  {
export import ObjectId = NS10770172024577249292..ObjectId;}
```

In this case the target namespace is empty, and so is the namespace
between the NSxxx placeholder and the target type.
This commit is contained in:
Max Burke
2020-04-06 09:09:15 -07:00
committed by GitHub
parent a83caf5910
commit 408f11fbdd

View File

@@ -144,11 +144,18 @@ class JsTsGenerator : public BaseGenerator {
imported_files.emplace(file.first);
}
code += "export namespace " + file.second.target_namespace + " { \n";
if (!file.second.target_namespace.empty()) {
code += "export namespace " + file.second.target_namespace + " { \n";
}
code += "export import " + file.second.symbol + " = ";
code += GenFileNamespacePrefix(file.first) + "." +
file.second.source_namespace + "." + file.second.symbol +
"; }\n";
code += GenFileNamespacePrefix(file.first) + ".";
if (!file.second.source_namespace.empty()) {
code += file.second.source_namespace + ".";
}
code += file.second.symbol + ";\n";
if (!file.second.target_namespace.empty()) {
code += "}\n";
}
}
}
}