all-package-names

2.0.897 • Public • Published

all-package-names

npm typescript Coverage Status GitHub stars Twitter Follow

Get all NPM package names.

Includes a JSON file of all NPM package names at the time of last publish, but also allows for syncing with latest packages.

Installation

yarn add all-package-names
npm install all-package-names

API


Programmatic Usage:

import { load, sync } from "all-package-names";

// Load from an existing sync (included on install)

load().then(({ packageNames }) => {
  console.log(packageNames); // array of all package names on npm
});

// Sync and return new package names

sync().then(({ packageNames }) => {
 console.log(packageNames); // array of all package names on npm
});

// Load with a maxAge of 1 minute

load({ maxAge: 60000 }).then(({ packageNames }) => {
  console.log(packageNames); // array of all package names on npm
});

// Sync with a maxAge of 1 minute

sync({ maxAge: 60000 }).then(({ packageNames }) => {
 console.log(packageNames); // array of all package names on npm
});

Basic Types:

import { load, sync, LoadOptions, SyncOptions, Save, State, StateHook } from "all-package-names";

function load({ maxAge }: LoadOptions): Promise<Save>

function sync({ maxAge }: LoadOptions = {}) => Promise<Save>;

type LoadOptions = {
  /**
   * Maximum milliseconds after a sync to avoid re-syncing
   */
   maxAge?: number;
};

type Save = {
  /**
   * Index of last package synced
   */
  since: number;
  /**
   * Timestamp of last sync
   */
  timestamp: number;
  /**
   * Array of package names
   */
  packageNames: string[];
};

State Hooks:

import { sync, LoadOptions, SyncOptions, Save, State, StateHook } from "all-package-names";

function sync({ onData, onStart, onEnd, maxAge }: SyncOptions = {}) => Promise<Save>;

type SyncOptions = {
  onStart?: StateHook;
  onData?: StateHook;
  onEnd?: StateHook;
} & LoadOptions;

type StateHook = (state: State) => void;

type State = {
  /**
   * Starting package sync index
   */
  start: number;
  /**
   * Current package sync index
   */
  index: number;
  /**
   * Ending package sync index
   */
  end: number;
  /**
   * Percentage of sync completed
   */
  progress: number;
  /**
   * Milliseconds since sync began
   */
  elapsed: number;
  /**
   * Set of package names that have been added
   */
  packageNames: Set<string>;
};


CLI Usage:

yarn all-package-names --help

Usage: all-package-names [options] [command]

Options:
  -v --version    output the version number
  -h, --help      display help for command

Commands:
  sync [options]  Sync latest packages from NPM
  help [command]  display help for command


Sync:

yarn all-package-names sync --help

Sync latest packages from NPM.

Usage: all-package-names sync [options]

Sync latest packages from NPM

Options:
  -m --max-age [milliseconds]  Maximum milliseconds after a sync to avoid re-syncing
  -h, --help                   display help for command


Commander Plugins:

Add all-package-names commands to any commander program:

import { program } from "commander";
import { syncCommand } from "all-package-names";

syncCommand(program);


Dependenciesdependencies


Dev DependenciesDavid


License license

MIT


Related Packages

Package Sidebar

Install

npm i all-package-names

Weekly Downloads

10,172

Version

2.0.897

License

MIT

Unpacked Size

39.4 MB

Total Files

16

Last publish

Collaborators

  • bconnorwhite