Current section

Files

Jump to
ash_authentication_phoenix lib ash_authentication_phoenix overrides info.ex
Raw

lib/ash_authentication_phoenix/overrides/info.ex

defmodule AshAuthentication.Phoenix.Overrides.Info do
@moduledoc """
Override introspection.
"""
@doc """
Returns a map of all known overridable modules and their overrides.
"""
@spec all_overridable_modules :: %{required(module) => %{required(atom) => binary}}
def all_overridable_modules do
:code.all_loaded()
|> Stream.map(&elem(&1, 0))
|> Stream.filter(
&Spark.implements_behaviour?(&1, AshAuthentication.Phoenix.Overrides.Overridable)
)
|> Stream.map(&{&1, &1.__overrides__})
|> Map.new()
end
end