HostKit.Package.Repology.Client (host_kit v0.1.0-beta.0)

Copy Markdown View Source

HTTP client for the Repology API.

Summary

Types

error()

@type error() ::
  {:http_error, non_neg_integer(), term()}
  | {:invalid_response, term()}
  | {:request_error, Exception.t()}
  | JSONCodec.Error.t()
  | Jason.DecodeError.t()

option()

@type option() ::
  {:base_url, String.t()}
  | {:site_url, String.t()}
  | {:user_agent, String.t()}
  | {:timeout, pos_integer()}
  | {:rate_limit, boolean()}
  | {:req_options, keyword()}

Functions

package_names(project, repo_match, opts \\ [])

@spec package_names(String.t() | atom(), String.t() | Regex.t(), [option()]) ::
  {:ok, [String.t()]} | {:error, error()}

project(project, opts \\ [])

@spec project(String.t() | atom(), [option()]) ::
  {:ok, [HostKit.Package.Repology.Record.t()]} | {:error, error()}

project_by_package(repo, package, opts \\ [])

@spec project_by_package(String.t(), String.t(), [option()]) ::
  {:ok, [HostKit.Package.Repology.Record.t()]} | {:error, error()}

projects(start \\ nil, opts \\ [])

@spec projects(String.t() | nil, [option()]) ::
  {:ok, %{required(String.t()) => [HostKit.Package.Repology.Record.t()]}}
  | {:error, error()}