lib/hologram/compiler/transformers/import_directive_transformer.ex

defmodule Hologram.Compiler.ImportDirectiveTransformer do
  alias Hologram.Compiler.Helpers
  alias Hologram.Compiler.IR.ImportDirective

  def transform({:import, _, [{:__aliases__, _, module_segs}, opts]}) do
    only = if opts[:only], do: opts[:only], else: []
    build_import(module_segs, only)
  end

  def transform({:import, _, [{:__aliases__, _, module_segs}]}) do
    build_import(module_segs, [])
  end

  defp build_import(module_segs, only) do
    module = Helpers.module(module_segs)
    %ImportDirective{module: module, only: only}
  end
end