@@ -25,10 +25,25 @@ withAllStdIn((inputBuff: Buffer) => {
25
25
const exportMap = new ExportMap ( ) ;
26
26
const fileNameToDescriptor : { [ key : string ] : FileDescriptorProto } = { } ;
27
27
28
- // Generate separate `.ts` files for services if param is set
29
28
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 ;
32
47
33
48
if ( parameter === "service=true" ) {
34
49
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) => {
41
56
42
57
codeGenRequest . getFileToGenerateList ( ) . forEach ( fileName => {
43
58
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
+ }
48
66
49
67
if ( generateGrpcWebServices ) {
50
68
generateGrpcWebService ( outputFileName , fileNameToDescriptor [ fileName ] , exportMap )
51
69
. forEach ( file => codeGenResponse . addFile ( file ) ) ;
52
- } else if ( generateGrpcNodeServices ) {
70
+ }
71
+
72
+ if ( generateGrpcNodeServices ) {
53
73
const file = generateGrpcNodeService ( outputFileName , fileNameToDescriptor [ fileName ] , exportMap ) ;
54
74
codeGenResponse . addFile ( file ) ;
55
75
}
0 commit comments