npm-registry-rest

NPM registry API

Usage no npm install needed!

<script type="module">
  import npmRegistryRest from 'https://cdn.skypack.dev/npm-registry-rest';
</script>

README

npm-registry-rest

NPM Registry RESTful API

total downloads of npm-registry-rest npm-registry-rest's License latest version of npm-registry-rest

Description

Depends on NPM official web service API.

ToC

Get Started

const rest = require('npm-registry-rest');
rest.getPackage('htp')
    .then(meta => {
        // ...
    })
    .catch(err => {
        // ...
    });

Each API in this package may be required as standalone module.

const getPackage = require('npm-registry-rest/getPackage');
getPackage('htp')
    .then(meta => {
        // ...
    })
    .catch(err => {
        // ...
    });

API

All methods are asynchronous and will return instances of Promise. Hereafter, response means what to be obtained in .then((response) => { /* ... */ }).

All member methods may be required and invoked by itself.

getDownloadCount

To get download count of specified package(s) in given day.

  • options.name string
  • options.name string[]
  • options.range string
  • options.suppressNotFoundError boolean DEFAULT false

What returned will be:

  • a number if options.name is a string representing a package name.
  • an object in form of { "<packageName>" : <downloadCount>, ... } if options.name is an array of string.

If options.suppressNotFoundError set true, there will be no error thrown if package(s) not found, and the package(s) will be regarded as obtaining zero download.

getPackage

To get meta info of given package.

What returned will look like:

{
    name /* string */,
    description /* string */,
    "dist-tags": {
        /* <tagName> : <version>, ... */
    },
    "versions": {
        /* <version> : <versionPackageJson>, ... */
    },
    readme /* string */,
    "maintainers": [
        { email, name } /* , ... */
    ],
    "time": {
        modified /* DateTime_in_ISO_format */,
        created /* DateTime_in_ISO_format */,
        /* <version> : <publishedTime>, ... */
    },
    homepage /* string(url) */,
    keywords /* string[] */,
    "repository": {
        type /* string */,
        url /* string */
    },
    "author": {
        name /* string */,
        email /* string(email) */,
        url /* string(url) */
    },
    "bugs": {
        url /* string(url) */
    },
    readmeFilename /* string */,
    "users": { /* Object OPTIONAL, users who stared the package */
        /* string <username> : boolean true, ... */
    }
    /* <misc>, ... */
}

<versionPackageJson> may look like:

{
    "bin": {
        /* <commandName> : <path>, ... */
    },
    "dependencies": {
        /* <packageName> : <semver>, ... */
    },
    "devDependencies": {
        /* <packageName> : <semver>, ... */
    },
    "directories": {
        /* <directoryTypeName> : <dirName>, ... */
    }
    "scripts": {
        /* <scriptName> : <command>, ... */
    }
    name /* string */,
    version /* string(semver) */,
    main /* string(path) */,
    keywords /* string[] */,
    homepage /* string(url) */,
    description /* string */,
    "repository": {
        type /* string */,
        url /* string */
    },
    "author": {
        name /* string */,
        email /* string(email) */,
        url /* string(url) */
    },
    "engines": {
        /* <engineName> : <semver>, ... */
    },
    "bugs": {
        url /* string(url) */
    },
    "maintainers": [
        { email, name } /* , ... */
    ],
    /* <misc>, ... */
}

getPackage.lite

To get abbreviated meta info of given package.

getPackgeNames

To get package names by owner, author, etc.

  • options.author string OPTINOAL
  • options.owner string OPTINOAL

What returned will be an array of package names.

getStarCount

To get number of stars of a specified package.

References