@kp/cli
Description
Command line interface for node.js
Installation
npm install @kp/cli
Usage
Command
import {Cli} from "@kp/cli";
const cli = new Cli();
cli.command("foo")
.action(() => {
return "Foo result";
});
cli.run(process.argv).then((res) => {
process.stdout.write(res);
}).catch((err) => {
process.stderr.write(err.message);
});
Command argument
<bar>
- required argument
[bar]
- not required argument
cli.command("foo <bar1> [bar2]")
.action((options, bar1: string, bar2?: string) => {
return `Foo result, with arguments bar1=${bar1} bar2=${bar2}`;
});
Command option
Types:
cli.command("foo")
.option("bar", {
type: "string",
alias: "b"
})
.option("init", {
type: "boolean",
alias: "i"
})
.action((options) => {
const {
bar = "",
init = false
} = options;
return `Foo result, with options bar=${bar} init=${init.toString()}`;
});
Completion
cli.command("foo <bar>")
.completion("bar", () => ["value1", "value2", "value3"])
.action((options, bar: string) => {
return `Foo result, with argument bar=${bar}`;
});
cli.command("completion script")
.action(() => {
return cli.completionScript();
});
source <(your-script.js completion script)