all-package-names
v2.0.897
Published
Get all NPM package names
Downloads
29,623
Maintainers
Readme
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);
- commander-version: A wrapper for Commander that automatically sets the version based on your package.json
- parse-json-object: Parse a typed JSON object
- progress: Flexible ascii progress bar
- read-json-safe: Read JSON files without try catch
- types-json: Type checking for JSON objects
- write-json-safe: Write formatted JSON to a file
- @bconnorwhite/bob: Bob builds and watches typescript projects.
- @types/node: TypeScript definitions for Node.js
- @types/progress: TypeScript definitions for node-progress
Related Packages
- npm-pd: A CLI dashboard for NPM publishers
- npms-io-client: Isomorphic typed client for npms.io
- package-name-conflict: Check if NPM package names conflict
- is-name-taken: Check if an NPM package name is taken