Detalhes do pacote

command-line-application

hipstersmoothie333.3kMIT0.10.1

A helpful wrapper around command-line-args and command-line-usage

readme (leia-me)

command-line-application

CircleCI npm npm

A helpful wrapper around command-line-args and command-line-usage.

  • Easily define single or multi-command CLI application
  • Adds required options
  • Suggests possible fixes for typos in flags or sub-commands
  • Built in --help flag
  • Add documentation footers to commands
  • Automatically add color to command types
  • Type checked!

Related Libraries

  • command-line-docs - Generate documentation for your command-line-application commands

Installation

yarn add command-line-application
# or
npm i --save command-line-application

Usage

A simple single command app

import { app, Command } from 'command-line-application';

const echo: Command = {
  name: 'echo',
  description: 'Print a string to the terminal',
  examples: ['echo foo', 'echo "Intense message"'],
  require: ['value'],
  options: [
    {
      name: 'value',
      type: String,
      defaultOption: true,
      description: 'The value to print'
    }
  ]
};

const args = app(echo);

// $ echo foo
console.log(args);
// output: { value: "foo" }

Complex examples

import app, { Command } from 'command-line-application';

const echo: Command = {
  examples: [{ example: 'echo foo', desc: 'The default use case' }],
  ...
};

Multi Command

You can even nest multi-commands!

import app, { Command } from 'command-line-application';

const test: Command = { ... };
const lint: Command = { ... };
const scripts: MultiCommand = {
  name: 'scripts',
  descriptions: 'my tools',
  commands: [test, lint]
};

const args = app(scripts);

// $ scripts test --fix
console.log(args);
// output: { _command: 'test', fix: true }

Footers

Add additional docs to your commands with Footers.

const echo: Command = {
  name: 'echo',
  description: 'Print a string to the terminal',
  examples: ['echo foo', 'echo "Intense message"'],
  options: [
    {
      name: 'value',
      type: String,
      defaultOption: true,
      description: 'The value to print'
    }
  ],
  footer: 'Only run this if you really need to',
  // or
  footer: {
    header: 'Additional Info',
    content: 'Only run this if you really need to'
  },
  // or
  footer: [
    {
      header: 'Additional Info',
      content: 'Only run this if you really need to'
    }
  ]
};

Code in footers

To display code in a footer set code to true.

const echo: Command = {
  name: 'echo',
  description: 'Print a string to the terminal',
  examples: ['echo foo', 'echo "Intense message"'],
  options: [
    {
      name: 'value',
      type: String,
      defaultOption: true,
      description: 'The value to print'
    }
  ],
  footer: {
    header: 'Additional Info',
    code: true,
    content: 'function foo (){\n  return 1;\n}'
  }
};

Require One or Another

To require on of multiple flags simply make on of the items in the required array an array of n options.

const echo: Command = {
  name: 'one-or-another',
  description: "Errors if one of the flags isn't provided",
  examples: ['one-or-another --a', 'one-or-another --b'],
  required: [['a', 'b']],
  options: [
    {
      name: 'a',
      type: Boolean,
      description: 'One options'
    },
    {
      name: 'b',
      type: Boolean,
      description: 'another option'
    }
  ]
};

Options

argv

Provide argv manually.

const args = app(echo, { argv: ['--help'] });

showHelp

Whether to show the help dialog. Defaults to true

const args = app(echo, { showHelp: false });

camelCase

Whether to camelCase the parsed options. Defaults to true

const args = app(echo, { camelCase: false });

error

Configure how command-line-application reports errors.

  • exit - (default) print error message and exit process
  • throw - throw error message
  • object - return the error message on an object with key error

changelog (log de mudanças)

v0.10.1 (Fri Jun 05 2020)

🐛 Bug Fix

Authors: 1


v0.10.0 (Fri Jun 05 2020)

🚀 Enhancement

  • mark multiple options as required vs other options #60 (@hborawski)

Authors: 1


v0.9.6 (Wed Jan 15 2020)

🐛 Bug Fix

Authors: 1


v0.9.5 (Tue Oct 22 2019)

🐛 Bug Fix

🔩 Dependency Updates

Authors: 2


v0.9.4 (Tue Oct 22 2019)

🐛 Bug Fix

Authors: 1


v0.9.3 (Thu Oct 17 2019)

🐛 Bug Fix

Authors: 1


v0.9.2 (Thu Oct 17 2019)

🐛 Bug Fix

Authors: 1


v0.9.1 (Sat Oct 05 2019)

🐛 Bug Fix

Authors: 1


v0.9.0 (Sat Oct 05 2019)

🚀 Enhancement

🏠 Internal

🔩 Dependency Updates

Authors: 2


v0.8.1 (Tue Sep 03 2019)

🐛 Bug Fix

Authors: 1


v0.8.0 (Mon Sep 02 2019)

🚀 Enhancement

Authors: 1


v0.7.0 (Tue Aug 27 2019)

🚀 Enhancement

Authors: 1


v0.6.1 (Sun Aug 25 2019)

🐛 Bug Fix

Authors: 1


v0.6.0 (Fri Aug 16 2019)

🚀 Enhancement

  • use all option in initial multi command parse + return all flags if no subcommand found but flags parsed #7 (@hipstersmoothie)

Authors: 1


v0.5.2 (Sun Jul 28 2019)

⚠️ Pushed to master

Authors: 1


v0.5.1 (Sun Jul 28 2019)

📝 Documentation

⚠️ Pushed to master

Authors: 1


v0.5.0 (Sun Jul 28 2019)

🚀 Enhancement

Authors: 1


v0.4.0 (Sun Jul 28 2019)

🚀 Enhancement

Authors: 1


v0.3.0 (Sun Jul 28 2019)

🚀 Enhancement

Authors: 1


v0.2.0 (Sun Jul 28 2019)

🚀 Enhancement

Authors: 1


v0.1.9 (Fri Jul 12 2019)

⚠️ Pushed to master

Authors: 1


v0.1.8 (Thu Jul 04 2019)

⚠️ Pushed to master

Authors: 1


v0.1.7 (Thu Jul 04 2019)

⚠️ Pushed to master

Authors: 1


v0.1.6 (Thu Jul 04 2019)

⚠️ Pushed to master

Authors: 1


v0.1.5 (Mon Jul 01 2019)

🐛 Bug Fix

Authors: 1


v0.1.4 (Mon Jul 01 2019)

⚠️ Pushed to master

Authors: 1


v0.1.3 (Tue Jun 04 2019)

⚠️ Pushed to master

Authors: 1