Nachos Preventing Motivation

    yeow

    0.2.0 • Public • Published

    yeow

    yeow is a CLI helper with attitude — part meow, part yargs, and built to spite the both of them.

    things yeow does:

    • parse arguments
    • assert types
    • fail if given incorrect arguments

    things yeow doesn't do:

    • negate arguments with --no-
    • interpret arguments as an array
    • restrict valid values to a predetermined list

    install

    $ npm i --save yeow
    

    usage

    #!/usr/bin/env node
    const args = require("yeow")({
      "exclamation": {
        type: "string",
        required: true
      },
      "int": {
        type: "number",
        aliases: "--integer",
        default: 16
      }
    });
    
    console.log(args);
    $ ./logger.js "yeow!"
    { exclamation: 'yeow!', int: 16 }
    
    $ ./logger.js "cool!" --integer 100
    { exclamation: 'cool!', int: 100 }
    

    API

    yeow(obj)

    returns an object of parsed arguments from the passed obj.

    obj

    type: object

    each key is a human-readable argument name. the value is an object with any of:

    type

    type: string

    type of the argument.

    possible values:

    • string
    • number
    • file

    if this is omitted, the argument will become a simple true/false flag.

    required

    type: boolean
    default: false

    whether the argument is required. required arguments ignore aliases and default.

    the n-th argument for which required is set to true must be passed as the n-th argument to the program.

    missing

    type: string

    error message to output if the argument is omitted.

    if the argument is not required, this will be ignored.

    aliases

    type: string

    valid aliases for the argument, space-slash-space separated.

    example values:

    • -a
    • -a / --argument

    if the argument is required, this will be ignored.

    extensions

    type: string

    valid file extensions for the argument, space-slash-space separated.

    example values:

    • .txt
    • .js / .jsx

    if the argument's type is not file, this will be ignored.
    if this is omitted, the argument will accept files of any extension.

    default

    type: string | number

    a default value the argument will have if it is omitted. the value's type should match the argument's type.

    if the argument is required, this will be ignored.

    invalid

    type: string

    error message to output if the argument is passed with an invalid type.

    example

    const args = require("yeow")({
      "script": {
        type: "file",
        extensions: ".js",
        required: true,
        missing: "a file must be passed",
        invalid: "not a .js file"
      },
      "delay": {
        type: "number",
        aliases: "-d / --delay",
        default: 1
      },
      "input": {
        type: "string",
        aliases: "--input",
      },
      "verbose": {
        aliases: "-v / --verbose"
      }
    });

    donate

    you can support the development of this project and others via Patreon:

    Support me on Patreon

    Install

    npm i yeow

    DownloadsWeekly Downloads

    2

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    7.26 kB

    Total Files

    5

    Last publish

    Collaborators

    • sporeball