swornforged/lib/swornforged/dataforged.ex

28 lines
686 B
Elixir

defmodule Swornforged.Dataforged do
def cache_dataforged() do
version = Application.get_env(:swornforged, :dataforged_version)
manifest =
Req.get!("https://registry.npmjs.org/dataforged/")
|> Map.get(:body)
dataforged_raw =
manifest["versions"][version]["dist"]["tarball"]
|> Req.get!()
|> Map.get(:body)
|> Enum.find(fn curr ->
case curr do
{'package/dist/starforged/dataforged.json', _str} -> true
_ -> false
end
end)
|> then(fn {_, json_str} -> json_str end)
dataforged = Jason.decode!(dataforged_raw)
Cachex.put!(:swornforged, "dataforged", dataforged)
:ok
end
end