@@ -12,29 +12,31 @@ defmodule Sidecar.GRPC.Generators.GRPCWithCustomOptions do
12
12
@ impl true
13
13
def template do
14
14
"""
15
- defmodule <%= @module %>.Service do
16
- use GRPC.Service, name: <%= inspect(@service_name) %>, protoc_gen_elixir_version: "<%= @version %>"
17
-
18
- <%= if @descriptor_fun_body do %>
19
- def descriptor do
20
- # credo:disable-for-next-line
21
- <%= @descriptor_fun_body %>
22
- end
23
- <% end %>
24
-
25
- <%= for {method_name, input, output, options} <- @methods do %>
26
- rpc :<%= method_name %>, <%= input %>, <%= output %>, <%= options %>
27
- <% end %>
28
- end
15
+ <%= if @render do %>
16
+ defmodule <%= @module %>.Service do
17
+ use GRPC.Service, name: <%= inspect(@service_name) %>, protoc_gen_elixir_version: "<%= @version %>"
29
18
30
- defmodule <%= @module %>.Stub do
31
- use GRPC.Stub, service: <%= @module %>.Service
32
- end
19
+ <%= if @descriptor_fun_body do %>
20
+ def descriptor do
21
+ # credo:disable-for-next-line
22
+ <%= @descriptor_fun_body %>
23
+ end
24
+ <% end %>
25
+
26
+ <%= for {method_name, input, output, options} <- @methods do %>
27
+ rpc :<%= method_name %>, <%= input %>, <%= output %>, <%= options %>
28
+ <% end %>
29
+ end
30
+
31
+ defmodule <%= @module %>.Stub do
32
+ use GRPC.Stub, service: <%= @module %>.Service
33
+ end
34
+ <% end %>
33
35
"""
34
36
end
35
37
36
38
@ impl true
37
- def generate ( ctx , % Google.Protobuf.FileDescriptorProto { service: svcs } = desc ) do
39
+ def generate ( ctx , % Google.Protobuf.FileDescriptorProto { service: [ _ | _ ] = svcs } = desc ) do
38
40
for svc <- svcs do
39
41
mod_name = Util . mod_name ( ctx , [ Macro . camelize ( svc . name ) ] )
40
42
name = Util . prepend_package_prefix ( ctx . package , svc . name )
@@ -61,6 +63,7 @@ defmodule Sidecar.GRPC.Generators.GRPCWithCustomOptions do
61
63
62
64
{ mod_name ,
63
65
[
66
+ render: true ,
64
67
module: mod_name ,
65
68
service_name: name ,
66
69
methods: methods ,
@@ -70,9 +73,13 @@ defmodule Sidecar.GRPC.Generators.GRPCWithCustomOptions do
70
73
end
71
74
end
72
75
76
+ def generate ( _ctx , _opts ) , do: { "unknown" , [ render: false ] }
77
+
73
78
defp service_arg ( type , _streaming? = true ) , do: "stream(#{ type } )"
74
79
defp service_arg ( type , _streaming? ) , do: type
75
80
81
+ defp opts ( nil ) , do: % { }
82
+
76
83
defp opts ( % Google.Protobuf.MethodOptions { __pb_extensions__: extensions } )
77
84
when extensions == % { } do
78
85
% { }
0 commit comments