Nancy's Preferred Machete

    argue-cli
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.0 • Public • Published

    argue-cli

    NPM version Node version Dependencies status Build status Coverage status Bundle size

    A thin and strongly typed CLI arguments parser for Node.js.

    Usage

    1. Install
    # yarn
    yarn add argue-cli
    # pnpm
    pnpm add argue-cli
    # npm
    npm i argue-cli
    1. Import in your code and use it!
    import { read, end, expect, alias, option, readOptions } from 'argue-cli'
    
    /**
     * Expect and read one of the commands
     */
    const command = expect(
      alias('install', 'i'),
      'remove'
    )
    let options = {}
    
    if (command === 'install') {
      /**
       * Read passed options
       */
      options = readOptions(
        option(alias('save', 'S'), Boolean),
        option(alias('saveDev', 'save-dev', 'D'), Boolean),
        option('workspace', String)
      )
    }
    
    /**
     * Read next argument
     */
    const packageName = read()
    
    /**
     * Expect end of the arguments
     */
    end()
    
    /* ... */

    API

    Method Description
    function read(): string
    Read next argument. Throws error if no next argument.
    function end(): void
    Expectation of the end. Throws an error if there are more arguments left.
    function expect(...argRefs: ArgRef[]): string
    Expect one of the given arguments.
    function alias(name: string, ...aliases: string[]): AliasArgRef
    Describe argument with aliases.
    function option(argRef: ArgRef, type: PrimitiveConstructor): OptionReader
    Describe option with value.
    function readOptions(...optionReaders: OptionReader[]): OptionResult
    Read options from arguments.

    TypeScript

    In API section types are described in a simplified way. Detailed example of the types you can see here.

    Install

    npm i argue-cli

    DownloadsWeekly Downloads

    60,422

    Version

    2.1.0

    License

    MIT

    Unpacked Size

    49.3 kB

    Total Files

    21

    Last publish

    Collaborators

    • dangreen