@@ -25,10 +25,25 @@ withAllStdIn((inputBuff: Buffer) => {
2525 const exportMap = new ExportMap ( ) ;
2626 const fileNameToDescriptor : { [ key : string ] : FileDescriptorProto } = { } ;
2727
28- // Generate separate `.ts` files for services if param is set
2928 const parameter = codeGenRequest . getParameter ( ) ;
30- const generateGrpcWebServices = parameter === "service=grpc-web" || parameter === "service=true" ;
31- const generateGrpcNodeServices = parameter === "service=grpc-node" ;
29+ const parameters : { [ key : string ] : string [ ] } = {
30+ generate : [ "base" ] ,
31+ } ;
32+
33+ if ( parameter === "service=grpc-web" || parameter === "service=true" ) {
34+ parameters . generate . push ( "grpc-web" ) ;
35+ } else if ( parameter === "service=grpc-node" ) {
36+ parameters . generate . push ( "grpc-node" ) ;
37+ } else if ( parameter . length > 0 ) {
38+ parameter . split ( "," ) . forEach ( parameterSection => {
39+ const [ key , value ] = parameterSection . split ( "=" , 2 ) ;
40+ parameters [ key ] = value ? value . split ( "+" ) : [ ] ;
41+ } ) ;
42+ }
43+
44+ const generateBaseFile = parameters [ "generate" ] . indexOf ( "base" ) !== - 1 ;
45+ const generateGrpcWebServices = parameters [ "generate" ] . indexOf ( "grpc-web" ) !== - 1 ;
46+ const generateGrpcNodeServices = parameters [ "generate" ] . indexOf ( "grpc-node" ) !== - 1 ;
3247
3348 if ( parameter === "service=true" ) {
3449 console . warn ( "protoc-gen-ts warning: The service=true parameter has been deprecated. Use service=grpc-web instead." ) ;
@@ -41,15 +56,20 @@ withAllStdIn((inputBuff: Buffer) => {
4156
4257 codeGenRequest . getFileToGenerateList ( ) . forEach ( fileName => {
4358 const outputFileName = replaceProtoSuffix ( fileName ) ;
44- const thisFile = new CodeGeneratorResponse . File ( ) ;
45- thisFile . setName ( outputFileName + ".d.ts" ) ;
46- thisFile . setContent ( printFileDescriptorTSD ( fileNameToDescriptor [ fileName ] , exportMap ) ) ;
47- codeGenResponse . addFile ( thisFile ) ;
59+
60+ if ( generateBaseFile ) {
61+ const thisFile = new CodeGeneratorResponse . File ( ) ;
62+ thisFile . setName ( outputFileName + ".d.ts" ) ;
63+ thisFile . setContent ( printFileDescriptorTSD ( fileNameToDescriptor [ fileName ] , exportMap ) ) ;
64+ codeGenResponse . addFile ( thisFile ) ;
65+ }
4866
4967 if ( generateGrpcWebServices ) {
5068 generateGrpcWebService ( outputFileName , fileNameToDescriptor [ fileName ] , exportMap )
5169 . forEach ( file => codeGenResponse . addFile ( file ) ) ;
52- } else if ( generateGrpcNodeServices ) {
70+ }
71+
72+ if ( generateGrpcNodeServices ) {
5373 const file = generateGrpcNodeService ( outputFileName , fileNameToDescriptor [ fileName ] , exportMap ) ;
5474 codeGenResponse . addFile ( file ) ;
5575 }
0 commit comments