NPMSemver.Range (NPMSemver v0.1.0)

Copy Markdown View Source

npm-compatible semver range parsing and matching.

A range is a union (||) of comparator sets. Each comparator set is an intersection (space-separated) of comparators.

Summary

Functions

Parse an npm range string.

Check if a version satisfies a range.

Convert range to Elixir/hex_solver requirement string.

Types

comparator()

@type comparator() :: {:gte | :lte | :gt | :lt | :eq, NPMSemver.Version.t()}

comparator_set()

@type comparator_set() :: [comparator()]

t()

@type t() :: %NPMSemver.Range{sets: [comparator_set()]}

Functions

parse(range_string, opts \\ [])

@spec parse(
  String.t(),
  keyword()
) :: {:ok, t()} | :error

Parse an npm range string.

satisfies?(range, version, opts \\ [])

@spec satisfies?(t(), NPMSemver.Version.t(), keyword()) :: boolean()

Check if a version satisfies a range.

to_elixir_string(range)

@spec to_elixir_string(t()) :: String.t()

Convert range to Elixir/hex_solver requirement string.