Skip to content

Commit

Permalink
generate grpc/invokers only for actors with option specified
Browse files Browse the repository at this point in the history
  • Loading branch information
eliasdarruda committed Jan 14, 2025
1 parent e610d4d commit d63bf19
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 8 deletions.
16 changes: 14 additions & 2 deletions lib/sidecar/grpc/generators/actor_invoker_generator.ex
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,20 @@ defmodule Sidecar.GRPC.Generators.ActorInvoker do

@impl true
def generate(ctx, %Google.Protobuf.FileDescriptorProto{service: [_ | _] = svcs} = _desc) do
svcs =
Enum.filter(svcs, fn svc ->
Map.get(svc.options || %{}, :__pb_extensions__, %{})
|> Map.get({Spawn.Actors.PbExtension, :actor})
end)

do_generate(ctx, svcs)
end

def generate(_ctx, _opts), do: {"unknown", [render: false]}

defp do_generate(_ctx, []), do: {"unknown", [render: false]}

defp do_generate(ctx, svcs) do
for svc <- svcs do
mod_name = Util.mod_name(ctx, [Macro.camelize(svc.name)])
actor_name = Macro.camelize(svc.name)
Expand Down Expand Up @@ -151,8 +165,6 @@ defmodule Sidecar.GRPC.Generators.ActorInvoker do
end
end

def generate(_ctx, _opts), do: {"unknown", [render: false]}

defp opts(nil), do: %{}

defp opts(%Google.Protobuf.MethodOptions{__pb_extensions__: extensions})
Expand Down
6 changes: 6 additions & 0 deletions lib/sidecar/grpc/generators/generator_accumulator.ex
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ defmodule Sidecar.GRPC.Generators.GeneratorAccumulator do

@impl true
def generate(ctx, %Google.Protobuf.FileDescriptorProto{service: [_ | _] = svcs} = _desc) do
svcs =
Enum.filter(svcs, fn svc ->
Map.get(svc.options || %{}, :__pb_extensions__, %{})
|> Map.get({Spawn.Actors.PbExtension, :actor})
end)

current_services = :persistent_term.get(:grpc_services, [])
descriptors = (:persistent_term.get(:proto_file_descriptors, []) ++ svcs) |> Enum.uniq()

Expand Down
16 changes: 14 additions & 2 deletions lib/sidecar/grpc/generators/grpc_with_custom_options.ex
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,20 @@ defmodule Sidecar.GRPC.Generators.GRPCWithCustomOptions do

@impl true
def generate(ctx, %Google.Protobuf.FileDescriptorProto{service: [_ | _] = svcs} = desc) do
svcs =
Enum.filter(svcs, fn svc ->
Map.get(svc.options || %{}, :__pb_extensions__, %{})
|> Map.get({Spawn.Actors.PbExtension, :actor})
end)

do_generate(ctx, svcs, desc)
end

def generate(_ctx, _opts), do: {"unknown", [render: false]}

defp do_generate(_ctx, [], _desc), do: {"unknown", [render: false]}

defp do_generate(ctx, svcs, desc) do
for svc <- svcs do
mod_name = Util.mod_name(ctx, [Macro.camelize(svc.name)])
name = Util.prepend_package_prefix(ctx.package, svc.name)
Expand Down Expand Up @@ -73,8 +87,6 @@ defmodule Sidecar.GRPC.Generators.GRPCWithCustomOptions do
end
end

def generate(_ctx, _opts), do: {"unknown", [render: false]}

defp service_arg(type, _streaming? = true), do: "stream(#{type})"
defp service_arg(type, _streaming?), do: type

Expand Down
16 changes: 14 additions & 2 deletions lib/sidecar/grpc/generators/handler_generator.ex
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,20 @@ defmodule Sidecar.GRPC.Generators.HandlerGenerator do

@impl true
def generate(ctx, %Google.Protobuf.FileDescriptorProto{service: [_ | _] = svcs} = _desc) do
svcs =
Enum.filter(svcs, fn svc ->
Map.get(svc.options || %{}, :__pb_extensions__, %{})
|> Map.get({Spawn.Actors.PbExtension, :actor})
end)

do_generate(ctx, svcs)
end

def generate(_ctx, _opts), do: {"unknown", [render: false]}

defp do_generate(_ctx, []), do: {"unknown", [render: false]}

defp do_generate(ctx, svcs) do
for svc <- svcs do
mod_name = Util.mod_name(ctx, [Macro.camelize(svc.name)])
actor_name = Macro.camelize(svc.name)
Expand Down Expand Up @@ -72,8 +86,6 @@ defmodule Sidecar.GRPC.Generators.HandlerGenerator do
end
end

def generate(_ctx, _opts), do: {"unknown", [render: false]}

defp service_arg(type, _streaming? = true), do: "stream(#{type})"
defp service_arg(type, _streaming?), do: type

Expand Down
16 changes: 14 additions & 2 deletions lib/sidecar/grpc/generators/handler_transcoding_generator.ex
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,20 @@ defmodule Sidecar.GRPC.Generators.HandlerTranscodingGenerator do

@impl true
def generate(ctx, %Google.Protobuf.FileDescriptorProto{service: [_ | _] = svcs} = _desc) do
svcs =
Enum.filter(svcs, fn svc ->
Map.get(svc.options || %{}, :__pb_extensions__, %{})
|> Map.get({Spawn.Actors.PbExtension, :actor})
end)

do_generate(ctx, svcs)
end

def generate(_ctx, _opts), do: {"unknown", [render: false]}

defp do_generate(_ctx, []), do: {"unknown", [render: false]}

defp do_generate(ctx, svcs) do
for svc <- svcs do
mod_name = Util.mod_name(ctx, [Macro.camelize(svc.name)])
actor_name = Macro.camelize(svc.name)
Expand Down Expand Up @@ -73,8 +87,6 @@ defmodule Sidecar.GRPC.Generators.HandlerTranscodingGenerator do
end
end

def generate(_ctx, _opts), do: {"unknown", [render: false]}

defp service_arg(type, _streaming? = true), do: "stream(#{type})"
defp service_arg(type, _streaming?), do: type

Expand Down

0 comments on commit d63bf19

Please sign in to comment.