lib/hologram/compiler/builder.ex
defmodule Hologram.Compiler.Builder do
alias Hologram.Compiler.{Context, JSEncoder, Opts, Pruner}
require Logger
def build(module, module_defs, call_graph) do
Pruner.prune(module, module_defs, call_graph)
|> encode_module_defs()
end
defp encode_module_defs(module_defs) do
Enum.reduce(module_defs, "", fn {_, module_def}, acc ->
acc <> "\n" <> JSEncoder.encode(module_def, %Context{}, %Opts{})
end)
end
end