nice-registry / all-the-packages

:package: All the npm registry metadata as an offline event stream. [DEPRECATED]
https://github.com/nice-registry/all-the-packages/issues/2
24 stars 14 forks source link

all-the-packages

All the npm registry metadata as an offline event stream.

Why?

See https://github.com/nice-registry/about#why

Installation

npm install all-the-packages --save

When you install this package, a postinstall script downloads the npm registry metadata to a local JSON file, which is about 540 MB.

To refresh the module once you've already installed it, just reinstall:

npm i all-the-packages@latest

Usage

This package provides a simple event emitter that emits two events: package and end.

const registry = require('all-the-packages')

registry
  .on('package', function (pkg) {
    console.log(`${pkg.name} - ${pkg.description}\n`)
  })
  .on('end', function () {
    // done
  })

To get cleaner package data, use nice-package:

const registry = require('all-the-packages')
const NicePackage = require('nice-package')
const coolPackages = []

registry
  .on('package', function (pkg) {
    if (pkg.name.match('cool') || pkg.description.match('cool')) {
      coolPackages.push(new NicePackage(pkg))
    }
  })
  .on('end', function () {
    // done
  })

Why Streams?

Streams are cool and all, but the main reason this module has a streaming interface is RAM. It would be nice to just require the module and have a giant registry object to work with, but a 400 MB JSON file is too big to fit in memory on most computers.

See Also

Tests

npm install
npm test

Dependencies

Dev Dependencies

License

MIT

Generated by package-json-to-readme