A Beautiful đ and Lightweight đ CLI-App Factory.
npm install cli-aid> A Beautiful đ and Lightweight đ CLI-App Factory.
- [x] Show default help and version information âšī¸
- [x] Option alias đ
- [x] Command inclusive options, can be optional or required đŖ
``js
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));
`
Command inclusive and required options.
`js
.command('base64', {
// text is required
usage: 'tinify base64
help: 'Output base64-encoded string of the input text.',
// cmd inclusive options
options: [
['verbose', 'v', { help: 'Show detailed information.' }],
],
})
`
`javascript
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
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
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,Print ${pkg.name} version.
help: ,
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));
`
`sh`
node demo/example-cli.js help
`sh
example-cli/7.0.0
A example cli to show you the power of cli-aid.
Usage
tinify
example-cli help [commands]
example-cli version
tinify base64
tinify set-key
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
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.
`
`sh`
node demo/example-cli.js help base64
`sh
Output base64-encoded string of the input text.
Usage
tinify base64
Options
--verbose, -v Show detailed information.
`
`sh`
node demo/example-cli.js base64
option in
`shtext required. Usage: tinify base64 `
READ more options in CLI.test.js and command in demo/example-cli.js.
`sh``
npm version major / minor / patch
- [x] cmd options
- [x] cmd help msg