NPM.Dependency.Peer (NPM v0.7.4)

Copy Markdown View Source

Analyzes and validates peer dependency declarations.

Peer dependencies declare that a package expects the consumer to provide a compatible version of another package. This module extracts peer dependency metadata from package manifests, distinguishes required and optional peers, checks lockfiles for satisfaction, and formats peer warnings for reports.

Summary

Functions

Check peer dependency satisfaction for a list of package manifests.

Count total peer dependency declarations across packages.

Extract peer dependencies from package manifest data.

Format peer dependency warnings as human-readable strings.

Extract raw peerDependenciesMeta data from package manifest data.

Check if a peer dependency is marked as optional.

Return the peer dependency names marked as optional.

Return required, non-optional peer dependencies.

Check if all required peers are satisfied by a lockfile.

Summarize peer dependency warnings for display.

List required peer dependencies not satisfied by a lockfile.

Types

warning()

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

Functions

check(lockfile, manifests)

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

Check peer dependency satisfaction for a list of package manifests.

count_across(packages)

@spec count_across([map()]) :: non_neg_integer()

Count total peer dependency declarations across packages.

extract(arg1)

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

Extract peer dependencies from package manifest data.

format_warnings(warnings)

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

Format peer dependency warnings as human-readable strings.

meta(arg1)

@spec meta(map()) :: map()

Extract raw peerDependenciesMeta data from package manifest data.

optional?(name, data)

@spec optional?(String.t(), map()) :: boolean()

Check if a peer dependency is marked as optional.

optional_peers(data)

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

Return the peer dependency names marked as optional.

required(data)

@spec required(map()) :: map()

Return required, non-optional peer dependencies.

satisfied?(data, lockfile)

@spec satisfied?(map(), map()) :: boolean()

Check if all required peers are satisfied by a lockfile.

summary(warnings)

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

Summarize peer dependency warnings for display.

unsatisfied(data, lockfile)

@spec unsatisfied(map(), map()) :: [{String.t(), String.t(), String.t() | nil}]

List required peer dependencies not satisfied by a lockfile.