cli-aid

6.4.4ย โ€ขย Publicย โ€ขย Published

cli-aid

A Beautiful ๐Ÿ’… and Lightweight ๐Ÿš€ CLI-App Factory.

npm version npm downloads Install Size jest

  • [x] Show default help and version information โ„น๏ธ
  • [x] Option alias ๐Ÿš€
  • [x] Command inclusive options, can be optional or required ๐Ÿ—ฃ

Use

const { CLI } = require('cli-aid');

new CLI()
  .package(pkg)
  .option('dry-run', {
    default: false,
    help: 'Does everything compress would do except actually compressing. Reports the details of what would have been compressed.',
  })
  .option('max-count', 'm', 'c', {
    default: 15,
    help: 'The max compressing turns. Default 15.',
  })
  .parse(process.argv.slice(2));

Examples

Command inclusive and required options.

.command('base64', {
  // text is required
  usage: 'tinify base64 <text>',
  help: 'Output base64-encoded string of the input text.',

  // cmd inclusive options
  options: [
    ['verbose', 'v', { help: 'Show detailed information.' }],
  ],
})

More Detailed Examples

const { CLI } = require('cli-aid');

const pkg = {
  name: 'example-cli',
  version: '7.0.0',
  description: 'A example cli to show you the power of cli-aid.',
};

new CLI()
  .package(pkg)
  .option('dry-run', {
    default: false,
    help: 'Does everything compress would do except actually compressing. Reports the details of what would have been compressed.',
  })
  .option('max-count', 'm', 'c', {
    default: 15,
    help: 'The max compressing turns. Default 15.',
  })

  // with one field required and a verbose option
  .command('base64', {
    usage: 'tinify base64 <text>',
    help: 'Output base64-encoded string of the input text.',

    options: [
      ['verbose', 'v', { help: 'Show detailed information.' }],
    ],
  }, (options) => {
    const text = options.text;

    console.log('output base64 for text', `"${text}"`);
    console.log(Buffer.from(text).toString('base64'));

    if (options.verbose) {
      console.log();
      console.log('options:', options);
    }

    process.exit(0);
  })

  // with two fields required
  .command('set-key', {
    usage: 'tinify set-key <key> <mode>',
    help: 'Set the tinify key.',
  }, (options) => {
    console.log('set-key to', `"${options.key}"`, 'with mode', `"${options.mode}"`);
    console.log();
    console.log('options:', options);

    process.exit(0);
  })

  // customize your version
  .command('version', {
    usage: `${pkg.name} version`,
    help: `Print ${pkg.name} version.`,

    options: [
      ['verbose', 'v', { help: 'Show detailed information.' }],
    ],
  }, (options) => {
    let versionTips = `${pkg.name}@${pkg.version}`;

    if (options.verbose) {
      versionTips = `${pkg.name}@${pkg.version} ${process.platform}-${process.arch} node-${process.version}`
    }

    console.log(versionTips);

    process.exit(0);
  })

  .parse(process.argv.slice(2));

Show help

node demo/example-cli.js help
example-cli/7.0.0

A example cli to show you the power of cli-aid.

Usage
  tinify <IMG_URL_OR_LOCAL_IMG_PATH...> [OPTIONS]
  example-cli help [commands]
  example-cli version
  tinify base64 <text>
  tinify set-key <key> <mode>

Commands
  help       Show this help information.
  version    Print example-cli version.
  base64     Output base64-encoded string of the input text.
  set-key    Set the tinify key.

Use "example-cli help <command>" for more information about a command.

Options
  --help, -h, -docs, -ๅธฎๅŠฉ    Show this help information.
  --version, -v               Show the version information.
  --dry-run                   Does everything compress would do except actually compressing. Reports the details of what would have been compressed.
  --max-count, -m, -c         The max compressing turns. Default 15.
  --verbose                   Show detailed information about the process of compressing.

Required cmd options

node demo/example-cli.js help base64
Output base64-encoded string of the input text.

Usage
  tinify base64 <text>

Options
  --verbose, -v    Show detailed information.
node demo/example-cli.js base64

option in <option> is required

`text` required. Usage: tinify base64 <text>

READ more options in CLI.test.js and command in demo/example-cli.js.

Publish

npm version major / minor / patch

TODO

  • [x] cmd options
  • [x] cmd help msg

Package Sidebar

Install

npm i cli-aid

Weekly Downloads

46

Version

6.4.4

License

ISC

Unpacked Size

23.6 kB

Total Files

9

Last publish

Collaborators

  • legend80s