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