28 lines
686 B
Elixir
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
|