Skip to content

Commit 2cc506a

Browse files
committed
fix: generate valid module files when no services found in .proto
1 parent 2a121dd commit 2cc506a

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

lib/sidecar/grpc/generators/handler_transcoding_generator.ex

+8
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ defmodule Sidecar.GRPC.Generators.HandlerTranscodingGenerator do
4141

4242
@impl true
4343
def generate(ctx, %Google.Protobuf.FileDescriptorProto{service: svcs} = _desc) do
44+
do_generate(ctx, svcs)
45+
end
46+
47+
defp do_generate(_ctx, nil), do: {"unknown", []}
48+
49+
defp do_generate(_ctx, []), do: {"unknown", []}
50+
51+
defp do_generate(ctx, svcs) do
4452
for svc <- svcs do
4553
mod_name = Util.mod_name(ctx, [Macro.camelize(svc.name)])
4654
actor_name = Macro.camelize(svc.name)

lib/sidecar/grpc/generators/reflection_server_generator.ex

+10-4
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,7 @@ defmodule Sidecar.Grpc.Generators.ReflectionServerGenerator do
3838
def generate(ctx, %Google.Protobuf.FileDescriptorProto{service: svcs} = _desc) do
3939
current_services = :persistent_term.get(:grpc_reflection_services, [])
4040

41-
services =
42-
svcs
43-
|> Enum.map(fn svc -> Util.mod_name(ctx, [Macro.camelize(svc.name)]) end)
44-
|> Kernel.++(current_services)
41+
services = do_generate(ctx, svcs, current_services)
4542

4643
:persistent_term.put(:grpc_reflection_services, services)
4744

@@ -50,4 +47,13 @@ defmodule Sidecar.Grpc.Generators.ReflectionServerGenerator do
5047
services: services
5148
]}
5249
end
50+
51+
defp do_generate(_ctx, nil, current_services), do: current_services
52+
defp do_generate(_ctx, [], current_services), do: current_services
53+
54+
defp do_generate(ctx, svcs, current_services) do
55+
svcs
56+
|> Enum.map(fn svc -> Util.mod_name(ctx, [Macro.camelize(svc.name)]) end)
57+
|> Kernel.++(current_services)
58+
end
5359
end

0 commit comments

Comments
 (0)