NPM.PeerDeps (NPM v0.6.0)

Copy Markdown View Source

Analyzes and validates peer dependency requirements.

Peer dependencies declare that a package is compatible with a specific version of another package that the consumer must provide. This module checks whether peer dependency requirements are satisfied.

Summary

Functions

Checks peer dependency satisfaction for a set of installed packages.

Extracts peer dependencies from a package manifest map. Returns a map of %{package_name => required_range}.

Formats peer dependency warnings as human-readable strings.

Extracts peer dependency metadata (which peers are optional). Returns a MapSet of optional peer dependency names.

Summarizes peer dependency status for display. Returns a map with :satisfied, :missing, and :incompatible counts.

Types

peer_warning()

@type peer_warning() :: %{
  package: String.t(),
  peer: String.t(),
  required: String.t(),
  found: String.t() | nil,
  satisfied: boolean()
}

Functions

check(lockfile, manifests)

@spec check(map(), [map()]) :: [peer_warning()]

Checks peer dependency satisfaction for a set of installed packages.

Given a lockfile (map of %{name => %{version, ...}}) and a list of package manifests with their peerDependencies, returns warnings for any unmet peer dependencies.

extract(arg1)

@spec extract(map()) :: map()

Extracts peer dependencies from a package manifest map. Returns a map of %{package_name => required_range}.

format_warnings(warnings)

@spec format_warnings([peer_warning()]) :: [String.t()]

Formats peer dependency warnings as human-readable strings.

optional_peers(arg1)

@spec optional_peers(map()) :: MapSet.t()

Extracts peer dependency metadata (which peers are optional). Returns a MapSet of optional peer dependency names.

summary(warnings)

@spec summary([peer_warning()]) :: %{
  satisfied: non_neg_integer(),
  missing: non_neg_integer(),
  incompatible: non_neg_integer()
}

Summarizes peer dependency status for display. Returns a map with :satisfied, :missing, and :incompatible counts.