25 lines
544 B
Elixir
25 lines
544 B
Elixir
defmodule Plausible.Imported.ImportSources do
|
|
@moduledoc """
|
|
Definitions of import sources.
|
|
"""
|
|
|
|
@sources [
|
|
Plausible.Imported.GoogleAnalytics4,
|
|
Plausible.Imported.UniversalAnalytics,
|
|
Plausible.Imported.NoopImporter,
|
|
Plausible.Imported.CSVImporter
|
|
]
|
|
|
|
@sources_map Map.new(@sources, &{&1.name(), &1})
|
|
|
|
@source_names Enum.map(@sources, & &1.name())
|
|
|
|
@spec names() :: [atom()]
|
|
def names(), do: @source_names
|
|
|
|
@spec by_name(atom()) :: module()
|
|
def by_name(name) do
|
|
Map.fetch!(@sources_map, name)
|
|
end
|
|
end
|