diff options
author | Jose <jose@zeroc.com> | 2018-10-22 22:11:53 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2018-10-23 19:49:47 +0200 |
commit | 80d005a0454ac9c1155099d0bc50917762e73f72 (patch) | |
tree | 9b4e6edf3869667eaa0738b6e8113a40d1ed4091 /cpp/src/slice2js/Gen.cpp | |
parent | Do not include babel polyfill when using workers (diff) | |
download | ice-80d005a0454ac9c1155099d0bc50917762e73f72.tar.bz2 ice-80d005a0454ac9c1155099d0bc50917762e73f72.tar.xz ice-80d005a0454ac9c1155099d0bc50917762e73f72.zip |
Write typescript imports inside module declaration
Diffstat (limited to 'cpp/src/slice2js/Gen.cpp')
-rw-r--r-- | cpp/src/slice2js/Gen.cpp | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/cpp/src/slice2js/Gen.cpp b/cpp/src/slice2js/Gen.cpp index 9fd6c3b33a7..10b571b6d83 100644 --- a/cpp/src/slice2js/Gen.cpp +++ b/cpp/src/slice2js/Gen.cpp @@ -699,7 +699,6 @@ Slice::Gen::generate(const UnitPtr& p) { TypeScriptRequireVisitor requireVisitor(_out); p->visit(&requireVisitor, false); - requireVisitor.writeRequires(p); // // If at some point TypeScript adds an operator to refer to a type in the global scope @@ -2361,15 +2360,6 @@ Slice::Gen::TypeScriptRequireVisitor::visitDictionary(const DictionaryPtr& dict) addImport(dict->valueType(), dict); } -void -Slice::Gen::TypeScriptRequireVisitor::writeRequires(const UnitPtr& p) -{ - for(vector<pair<string, string> >::const_iterator i = _imports.begin(); i != _imports.end(); ++i) - { - _out << nl << "import * as " << i->second << " from \"" << i->first << "\""; - } -} - Slice::Gen::TypeScriptAliasVisitor::TypeScriptAliasVisitor(IceUtilInternal::Output& out) : JsVisitor(out) { @@ -2563,10 +2553,24 @@ Slice::Gen::TypeScriptAliasVisitor::writeAlias(const UnitPtr& p) Slice::Gen::TypeScriptVisitor::TypeScriptVisitor(::IceUtilInternal::Output& out, const vector<pair<string, string> >& imports) : - JsVisitor(out, imports) + JsVisitor(out, imports), + _wroteImports(false) { } +void +Slice::Gen::TypeScriptVisitor::writeImports() +{ + if(!_wroteImports) + { + for(vector<pair<string, string> >::const_iterator i = _imports.begin(); i != _imports.end(); ++i) + { + _out << nl << "import * as " << i->second << " from \"" << i->first << "\""; + } + _wroteImports = true; + } +} + bool Slice::Gen::TypeScriptVisitor::visitModuleStart(const ModulePtr& p) { @@ -2578,11 +2582,13 @@ Slice::Gen::TypeScriptVisitor::visitModuleStart(const ModulePtr& p) _out << sp; if(module.empty()) { + writeImports(); _out << nl << "export namespace " << fixId(p->name()) << sb; } else { _out << nl << "declare module \"" << fixId(module) << "\"" << sb; + writeImports(); _out << nl << "namespace " << fixId(p->name()) << sb; } } |