Current section

Files

Jump to
definject lib inject check.ex
Raw

lib/inject/check.ex

defmodule Inject.Check do
@moduledoc false
@uninjectable [:erlang, Kernel, Macro, Module, Access]
def raise_if_uninjectable_deps_injected(%{} = deps) do
for {{remote_mod, _name, _arity}, _} <- Map.drop(deps, [:strict]) do
if remote_mod in unquote(@uninjectable) do
raise "Uninjectable module injected #{inspect(remote_mod)}"
end
end
end
def raise_if_unknown_deps_found(mfas, %{} = deps) when is_list(mfas) do
mfas = mfas |> Enum.sort() |> Enum.uniq()
if Map.get(deps, :strict, true) do
for {key, _} <- Map.drop(deps, [:strict]) do
unless key in mfas do
raise "Unexpected injection #{inspect(key)}"
end
end
end
end
end