Package Exports
- @devnetic/cli
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@devnetic/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@devnetic/cli
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 -hUsing 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()