@@ -97,6 +97,13 @@ export class ProtobuftsPlugin extends PluginBase {
97
97
"the default behaviour, this option has no effect." ,
98
98
excludes : [ 'eslint_disable' ] ,
99
99
} ,
100
+ force_disable_services : {
101
+ description : "Do not generate anything for service definitions, and \n" +
102
+ "ignore options in proto files. This is the same as setting both \n" +
103
+ "`force_server_none` and `force_client_none`, but also stops \n" +
104
+ "generating service metadata."
105
+ excludes : [ 'client_generic' , 'client_grpc1' , 'server_generic' , 'server_grpc1' ]
106
+ } ,
100
107
add_pb_suffix : {
101
108
description : "Adds the suffix `_pb` to the names of all generated files. This will become the \n" +
102
109
"default behaviour in the next major release." ,
@@ -152,12 +159,12 @@ export class ProtobuftsPlugin extends PluginBase {
152
159
client_generic : {
153
160
description : "Only applies to services that do *not* use the option `ts.client`. \n" +
154
161
"Since GENERIC_CLIENT is the default, this option has no effect." ,
155
- excludes : [ 'client_none' , 'client_grpc1' , 'force_client_none' ] ,
162
+ excludes : [ 'client_none' , 'client_grpc1' , 'force_client_none' , 'force_disable_services' ] ,
156
163
} ,
157
164
client_grpc1 : {
158
165
description : "Generate a client using @grpc/grpc-js (major version 1). \n" +
159
166
"Only applies to services that do *not* use the option `ts.client`." ,
160
- excludes : [ 'client_none' , 'client_generic' , 'force_client_none' ] ,
167
+ excludes : [ 'client_none' , 'client_generic' , 'force_client_none' , 'force_disable_services' ] ,
161
168
} ,
162
169
force_client_none : {
163
170
description : "Do not generate rpc clients, ignore options in proto files." ,
@@ -184,13 +191,13 @@ export class ProtobuftsPlugin extends PluginBase {
184
191
"for example @protobuf-ts/grpc-backend for gRPC. \n" +
185
192
"Note that this is an experimental feature and may change with a minor release. \n" +
186
193
"Only applies to services that do *not* use the option `ts.server`." ,
187
- excludes : [ 'server_none' , 'force_server_none' ] ,
194
+ excludes : [ 'server_none' , 'force_server_none' , 'force_disable_services' ] ,
188
195
} ,
189
196
server_grpc1 : {
190
197
description : "Generate a server interface and definition for use with @grpc/grpc-js \n" +
191
198
"(major version 1). \n" +
192
199
"Only applies to services that do *not* use the option `ts.server`." ,
193
- excludes : [ 'server_none' , 'force_server_none' ] ,
200
+ excludes : [ 'server_none' , 'force_server_none' , 'force_disable_services' ] ,
194
201
} ,
195
202
force_server_none : {
196
203
description : "Do not generate rpc servers, ignore options in proto files." ,
@@ -312,30 +319,32 @@ export class ProtobuftsPlugin extends PluginBase {
312
319
if ( DescriptorProto . is ( descriptor ) ) {
313
320
genMessageType . generateMessageType ( outMain , descriptor , optionResolver . getOptimizeMode ( fileDescriptor ) ) ;
314
321
}
315
- if ( ServiceDescriptorProto . is ( descriptor ) ) {
316
322
317
- // service type
318
- genServiceType . generateServiceType ( outMain , descriptor )
319
-
320
- // clients
321
- const clientStyles = optionResolver . getClientStyles ( descriptor ) ;
322
- if ( clientStyles . includes ( ClientStyle . GENERIC_CLIENT ) ) {
323
- genClientGeneric . generateInterface ( outClientCall , descriptor ) ;
324
- genClientGeneric . generateImplementationClass ( outClientCall , descriptor ) ;
325
- }
326
- if ( clientStyles . includes ( ClientStyle . GRPC1_CLIENT ) ) {
327
- genClientGrpc . generateInterface ( outClientGrpc , descriptor ) ;
328
- genClientGrpc . generateImplementationClass ( outClientGrpc , descriptor ) ;
329
- }
330
-
331
- // servers
332
- const serverStyles = optionResolver . getServerStyles ( descriptor ) ;
333
- if ( serverStyles . includes ( ServerStyle . GENERIC_SERVER ) ) {
334
- genServerGeneric . generateInterface ( outServerGeneric , descriptor ) ;
335
- }
336
- if ( serverStyles . includes ( ServerStyle . GRPC1_SERVER ) ) {
337
- genServerGrpc . generateInterface ( outServerGrpc , descriptor ) ;
338
- genServerGrpc . generateDefinition ( outServerGrpc , descriptor ) ;
323
+ if ( ! options . forceDisableServices ) {
324
+ if ( ServiceDescriptorProto . is ( descriptor ) ) {
325
+ // service type
326
+ genServiceType . generateServiceType ( outMain , descriptor ) ;
327
+
328
+ // clients
329
+ const clientStyles = optionResolver . getClientStyles ( descriptor ) ;
330
+ if ( clientStyles . includes ( ClientStyle . GENERIC_CLIENT ) ) {
331
+ genClientGeneric . generateInterface ( outClientCall , descriptor ) ;
332
+ genClientGeneric . generateImplementationClass ( outClientCall , descriptor ) ;
333
+ }
334
+ if ( clientStyles . includes ( ClientStyle . GRPC1_CLIENT ) ) {
335
+ genClientGrpc . generateInterface ( outClientGrpc , descriptor ) ;
336
+ genClientGrpc . generateImplementationClass ( outClientGrpc , descriptor ) ;
337
+ }
338
+
339
+ // servers
340
+ const serverStyles = optionResolver . getServerStyles ( descriptor ) ;
341
+ if ( serverStyles . includes ( ServerStyle . GENERIC_SERVER ) ) {
342
+ genServerGeneric . generateInterface ( outServerGeneric , descriptor ) ;
343
+ }
344
+ if ( serverStyles . includes ( ServerStyle . GRPC1_SERVER ) ) {
345
+ genServerGrpc . generateInterface ( outServerGrpc , descriptor ) ;
346
+ genServerGrpc . generateDefinition ( outServerGrpc , descriptor ) ;
347
+ }
339
348
}
340
349
}
341
350
} ) ;
0 commit comments