@@ -715,12 +715,12 @@ function generateDefinitionImports(formatter: TextFormatter, namespace: Protobuf
715715 }
716716}
717717
718- function generateServiceImports ( formatter : TextFormatter , namespace : Protobuf . NamespaceBase , options : GeneratorOptions ) {
718+ function generateDynamicImports ( formatter : TextFormatter , namespace : Protobuf . NamespaceBase , options : GeneratorOptions ) {
719719 for ( const nested of namespace . nestedArray . sort ( compareName ) ) {
720- if ( nested instanceof Protobuf . Service ) {
720+ if ( nested instanceof Protobuf . Service || nested instanceof Protobuf . Type ) {
721721 formatter . writeLine ( getImportLine ( nested , undefined , options ) ) ;
722- } else if (isNamespaceBase(nested) && ! ( nested instanceof Protobuf . Type ) && ! ( nested instanceof Protobuf . Enum ) ) {
723- generateServiceImports ( formatter , nested , options ) ;
722+ } else if (isNamespaceBase(nested) && ! ( nested instanceof Protobuf . Enum ) ) {
723+ generateDynamicImports ( formatter , nested , options ) ;
724724 }
725725 }
726726}
@@ -735,7 +735,9 @@ function generateSingleLoadedDefinitionType(formatter: TextFormatter, nested: Pr
735735 } else if ( nested instanceof Protobuf . Enum ) {
736736 formatter . writeLine ( `${ nested . name } : EnumTypeDefinition` ) ;
737737 } else if (nested instanceof Protobuf.Type) {
738- formatter . writeLine ( `${ nested . name } : MessageTypeDefinition` ) ;
738+ const typeInterfaceName = getTypeInterfaceName ( nested ) ;
739+ const { inputName, outputName} = useNameFmter ( options ) ;
740+ formatter . writeLine ( `${ nested . name } : MessageTypeDefinition<${ inputName ( typeInterfaceName ) } , ${ outputName ( typeInterfaceName ) } >` ) ;
739741 } else if (isNamespaceBase(nested)) {
740742 generateLoadedDefinitionTypes ( formatter , nested , options ) ;
741743 }
@@ -759,7 +761,7 @@ function generateRootFile(formatter: TextFormatter, root: Protobuf.Root, options
759761 generateDefinitionImports(formatter, root, options);
760762 formatter.writeLine('');
761763
762- generateServiceImports (formatter, root, options);
764+ generateDynamicImports (formatter, root, options);
763765 formatter.writeLine('');
764766
765767 formatter.writeLine('type SubtypeConstructor< Constructor extends new ( ...args : any ) => any , Subtype > = { ');
0 commit comments