NPM.Scope (NPM v0.6.0)

Copy Markdown View Source

Parses and manages npm package scopes.

Scopes are namespaces prefixed with @ (e.g., @babel/core). They map to registries, organizations, and access controls.

Summary

Functions

Extracts the bare package name (without scope).

Extracts the scope from a package name (without @).

Constructs a full scoped name from scope and package name.

Groups package names by scope (nil for unscoped).

Checks if a package name is scoped.

Lists all unique scopes found in a set of package names.

Validates a full package name (scoped or unscoped).

Validates a scope name.

Functions

bare_name(name)

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

Extracts the bare package name (without scope).

extract(arg1)

@spec extract(String.t()) :: String.t() | nil

Extracts the scope from a package name (without @).

full_name(scope, name)

@spec full_name(String.t(), String.t()) :: String.t()

Constructs a full scoped name from scope and package name.

group_by_scope(names)

@spec group_by_scope([String.t()]) :: %{required(String.t() | nil) => [String.t()]}

Groups package names by scope (nil for unscoped).

scoped?(arg1)

@spec scoped?(String.t()) :: boolean()

Checks if a package name is scoped.

unique_scopes(names)

@spec unique_scopes([String.t()]) :: [String.t()]

Lists all unique scopes found in a set of package names.

valid_name?(name)

@spec valid_name?(String.t()) :: boolean()

Validates a full package name (scoped or unscoped).

valid_scope?(scope)

@spec valid_scope?(String.t()) :: boolean()

Validates a scope name.

Scopes must be lowercase, URL-safe, and not start with a dot or underscore.