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
|