NPM.Alias (NPM v0.6.0)

Copy Markdown View Source

Handle npm package aliases.

npm supports aliasing packages with the npm: prefix syntax:

"my-react": "npm:react@^18.0.0"

This allows installing a package under a different name, useful for running multiple versions of the same package side by side.

Summary

Functions

Check if a dependency specifier is an alias.

Parse an alias specifier.

Extract the real package name from an alias specifier.

Functions

alias?(arg1)

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

Check if a dependency specifier is an alias.

parse(range)

@spec parse(String.t()) :: {:alias, String.t(), String.t()} | {:normal, String.t()}

Parse an alias specifier.

Returns {:alias, package, range} if the specifier uses npm: prefix, or {:normal, range} otherwise.

Examples

iex> NPM.Alias.parse("npm:react@^18.0.0")
{:alias, "react", "^18.0.0"}

iex> NPM.Alias.parse("npm:@scope/pkg@1.0.0")
{:alias, "@scope/pkg", "1.0.0"}

iex> NPM.Alias.parse("^1.0.0")
{:normal, "^1.0.0"}

real_name(alias_name, arg2)

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

Extract the real package name from an alias specifier.

Returns the original name if not an alias.