0.0.4 • Published 7 years ago
kumander v0.0.4
Kumander (Alpha)
Simple, Express-style CLI framework for Node. Create CLI programs written in Typescript or in Javascript with no additional dependencies.
Install
NPM
$ npm install --save kumander@0.0.4Yarn
$ yarn add kumander@0.0.4Usage
- Import first the module
// For Typescript
import { CLI } from "kumander/dist/kumander";
const cli = CLI();
// For NodeJS
const kumander = require("kumander/dist/kumander");
const cli = kumander.CLI();- Start using it by adding commands and options.
cli.set("name", "My CLI app"); // Add CLI name
cli.set("version", "1.0"); // Add CLI version
cli.set("description", "Just a normal command line program"); // CLI description
cli.set("defaultCommand", "print"); // Add default command to be executed
// Adds "yolo" option
cli.option("yolo", () => {
    console.log("You only live once.");
}, {
    description: "Prints the meaning of YOLO.",
    asCommand: true // treats the option as a command.
})
// Adds "name" option
cli.option("age", (value) => {
    return value;
}, {
    description: "Age option", // Describe the name option
    shorthand: "A" // Shortcut for the option ("-A")
});
cli.command("print", ({ options, _args }) => {
    console.log(`Hello my name is ${_args[0]}`);
    if (options.age) {
        console.log(`I'm ${options.age} years old.`)
    }
}, {
    arguments: 1, // Defines how many arguments to be used.
    description: "Prints a name" // Describe the command
});
cli.run(process.argv.slice(2)); // Runs the CLI with the ARGV array;- Run the program
$ node test.js print Joe --age=20
Hello my name is Joe
I\'m 20 years old.
$ node test.js --yolo
You only live once.Adding additional info
// You must insert them first before you add the commands/options.
cli.set("name", "My CLI app"); // Add CLI name
cli.set("version", "1.0"); // Add CLI version
cli.set("description", "Just a normal command line program"); // CLI description
cli.set("defaultCommand", "print"); // Add default command to be executed--help Generation
Kumander can auto-generate the list everytime you add a command or option.
$ node test.js --help
My CLI app
Just a normal command line program
Usage: my_cli app [options]
Options:
--version                     Displays CLI version
--yolo                        Prints the meaning of YOLO.
--help                        Displays the list of commands and options
--age                         Age option
-A                            Shortcut of 'age'
-v                            Shortcut of 'version'
-h                            Shortcut of 'help'
Commands:
print                         Prints a nameDevelopment
Build
Kumander is written on Typescript from the ground-up and must install the tsc compiler first before you start building this module. After that, you can start building it by executing:
$ npm build-devRoadmap
- Command argument support
- Shorthand option support
- Middleware / Plugin Support(?)
- JSDoc comments
- --helpgeneration
- Error handling
- Tests
Contribute
- Fork / Clone this repo. (git clone https://github.com/nedpals/kumander.git)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Copyright
- © 2018 Ned Palacios (nedpals)