Command line interface for node.js
npm install @kearisp/cliimport{Cli}from"@kearisp/cli";constcli=newCli();cli.command("foo").action(()=>{return"Foo result";});cli.run(process.argv).then((res)=>{process.stdout.write(res);}).catch((err)=>{process.stderr.write(err.message);});<bar> - required argument
[bar] - not required argument
ℹ️ The spread is not stable now
<...bars> - required spread argument
[...bars] - not required spread argument
cli.command("foo <foo1> [foo2]").action((input: CommandInput)=>{return`Foo result, with arguments foo1=${input.argument("foo1")} foo2=${input.argument("foo2")}`;});cli.command("bar [...bars]").action((input: CommandInput)=>{return"Bar result, Bars: "+input.argument("bars").join(", ");});Types:
- string
- boolean
- number
cli.command("foo").option("bar",{type: "string",alias: "b"}).option("init",{type: "boolean",alias: "i"}).action((input: CommandInput)=>{const{
bar ="",
init =false}=input.options();return`Foo result, with options bar=${bar} init=${init.toString()}`;});cli.command("foo").help({description: "Foo description"}).option("option",{alias: "o",description: "Option description"}).action((input)=>{const{
option =""}=input.options();return`option=${option}`;});./cli.js foo -hResponse:
Help: Foo description --option, -o - Option description
cli.command("foo <bar>").completion("bar",()=>["value1","value2","value3"]).action((input)=>{const{
bar =""}=input.arguments();return`Foo result, with argument bar=${bar}`;});cli.command("completion script").action(()=>{returncli.completionScript();});source<(your-script.js completion script)