@devnetic/cli
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

@devnetic/cli

npm (scoped) npm bundle size (scoped) npm GitHub issues GitHub

A tool for rapidly parse command line arguments and create command line applications.

Usage

Get cli arguments

To get the cli arguments you can to use the getParams function; this function return an object with all the params and values given to your Node.js script.

const { getParams } = require('@devnetic/cli')

const params = getParams()

if (params.help || params.h) {
  console.log('Help option is used')
}

// execute with node index.js --help or node index.js -h

Using the usage function to create a help for our command line tools

const { usage } = require('@devnetic/cli')

usage('Usage: $0 <command> [options]')
  .option(['-f', '--file'], 'Load a file', 'red')
  .option(['-h', '--help'], 'Show help', 'blue')
  .example('$0 -f foo.js', 'count the lines in the given file')
  .epilog('copyright 2019', 'green')
  .show()

Using the format function to custom messages for our command lines tools

const { format } = require('@devnetic/cli')

const error = format.bold().red

console.log(format.white(JSON.stringify(fixed, null, '  ')))
console.log(format.bold().italic().red(JSON.stringify(params, null, '  ')))

console.log(error('Unexpeted Error!'))
console.log(format.bold().yellow('This is a Warning!'))

Prompt questions to the user

With cli package you can ask question to the user in a easy way; the prompt function return a Promise with the user's answers, so you can use the traditional promise mechanism or to use async/await:

const { prompt } = require('@devnetic/cli')

const questions = [{
  type: 'input',
  name: 'firstName',
  message: "What's your firsr name? ",
}, {
  type: 'input',
  name: 'lastname',
  message: "What's your last name? ",
}, {
  type: 'input',
  name: 'phoneNumber',
  message: "What's your phone number? ",
}]

const run = async () => {
  const answers = await prompt(questions)

  console.log(answers)
  // { firstName: 'John', lastname: 'Doe', phoneNumber: '123' }
}

run()

Package Sidebar

Install

npm i @devnetic/cli

Weekly Downloads

4

Version

1.2.1

License

MIT

Unpacked Size

28.8 kB

Total Files

15

Last publish

Collaborators

  • aagamezl