fix: only import modules we can build docs for

This commit is contained in:
Zach Daniel 2023-01-18 09:13:12 -05:00
parent 053d5746cb
commit 65d4c4f8d1

View file

@ -340,8 +340,8 @@ defmodule Utils do
def build_function(_, _, _, _, _, _), do: []
def build_module(module, category, order) do
{:docs_v1, _, :elixir, _, docs, _, defs} = Code.fetch_docs(module)
case Code.fetch_docs(module) do
{:docs_v1, _, :elixir, _, docs, _, defs} ->
module_doc =
case docs do
%{"en" => en} ->
@ -365,7 +365,7 @@ defmodule Utils do
callbacks = Types.callbacks_for_module(module)
typespecs = Types.specs_for_module(module)
%{
{:ok, %{
name: inspect(module),
doc: module_doc,
file: file,
@ -377,7 +377,11 @@ defmodule Utils do
|> Enum.flat_map(fn {definition, i} ->
build_function(definition, file, types, callbacks, typespecs, i)
end)
}
}}
_ ->
:error
end
end
def build_mix_task(mix_task, category, order) do
@ -632,9 +636,14 @@ acc =
modules
|> Enum.with_index()
|> Enum.reduce(acc, fn {module, order}, acc ->
case Utils.build_module(module, category, order) do
{:ok, built} ->
Map.update!(acc, :modules, fn modules ->
[Utils.build_module(module, category, order) | modules]
[built | modules]
end)
_ ->
acc
end
end)
end)