Nimble Polyglot Microcosm

    all-package-names

    2.0.391 • 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

    Install

    npm i all-package-names

    DownloadsWeekly Downloads

    3,258

    Version

    2.0.391

    License

    MIT

    Unpacked Size

    65 MB

    Total Files

    16

    Last publish

    Collaborators

    • bconnorwhite