Big update!Introducing GitHub Bot Commands. Learn more
Socket
Log inBook a demo

npm-package-arg

Package Overview
Dependencies
4
Maintainers
5
Versions
45
Issues
File Explorer

Advanced tools

npm-package-arg

Parse the things that can be arguments to `npm install`

    10.0.0latest

Version published
Maintainers
5
Weekly downloads
9,147,718
decreased by-5.07%

Weekly downloads

Changelog

Source

10.0.0 (2022-10-18)

⚠️ BREAKING CHANGES

  • x and [email protected] now return the same spec as [email protected]*
  • npm-package-arg is now compatible with the following semver range for node: ^14.17.0 || ^16.13.0 || >=18.0.0

Features

  • 749ccad #104 postinstall for dependabot template-oss PR (@lukekarrys)

Bug Fixes

Dependencies

Readme

Source

npm-package-arg

Build Status

Parses package name and specifier passed to commands like npm install or npm cache add, or as found in package.json dependency sections.

EXAMPLES

var assert = require("assert") var npa = require("npm-package-arg") // Pass in the descriptor, and it'll return an object try { var parsed = npa("@bar/[email protected]") } catch (ex) { … }

USING

var npa = require('npm-package-arg')

var result = npa(arg[, where])

  • arg - a string that you might pass to npm install, like: [email protected], @bar/[email protected], [email protected]/foo, http://x.com/foo.tgz, git+https://github.com/user/foo, bitbucket:user/foo, foo.tar.gz, ../foo/bar/ or bar. If the arg you provide doesn't have a specifier part, eg foo then the specifier will default to latest.
  • where - Optionally the path to resolve file paths relative to. Defaults to process.cwd()

Throws if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.

var result = npa.resolve(name, spec[, where])

  • name - The name of the module you want to install. For example: foo or @bar/foo.
  • spec - The specifier indicating where and how you can get this module. Something like: 1.2, ^1.7.17, http://x.com/foo.tgz, git+https://github.com/user/foo, bitbucket:user/foo, file:foo.tar.gz or file:../foo/bar/. If not included then the default is latest.
  • where - Optionally the path to resolve file paths relative to. Defaults to process.cwd()

Throws if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.

RESULT OBJECT

The objects that are returned by npm-package-arg contain the following keys:

  • type - One of the following strings:
  • registry - If true this specifier refers to a resource hosted on a registry. This is true for tag, version and range types.
  • name - If known, the name field expected in the resulting pkg.
  • scope - If a name is something like @org/module then the scope field will be set to @org. If it doesn't have a scoped name, then scope is null.
  • escapedName - A version of name escaped to match the npm scoped packages specification. Mostly used when making requests against a registry. When name is null, escapedName will also be null.
  • rawSpec - The specifier part that was parsed out in calls to npa(arg), or the value of spec in calls to `npa.resolve(name, spec).
  • saveSpec - The normalized specifier, for saving to package.json files. null for registry dependencies.
  • fetchSpec - The version of the specifier to be used to fetch this resource. null for shortcuts to hosted git dependencies as there isn't just one URL to try with them.
  • gitRange - If set, this is a semver specifier to match against git tags with
  • gitCommittish - If set, this is the specific committish to use with a git dependency.
  • hosted - If from === 'hosted' then this will be a hosted-git-info object. This property is not included when serializing the object as JSON.
  • raw - The original un-modified string that was provided. If called as npa.resolve(name, spec) then this will be name + '@' + spec.
  • subSpec - If type === 'alias', this is a Result Object for parsing the target specifier for the alias.

FAQs

What is npm-package-arg?

Parse the things that can be arguments to `npm install`

Is npm-package-arg popular?

The npm package npm-package-arg receives a total of 8,718,489 weekly downloads. As such, npm-package-arg popularity was classified as popular.

Is npm-package-arg well maintained?

We found that npm-package-arg demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 5 open source maintainers collaborating on the project.

Last updated on 18 Oct 2022

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket

Product

Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc