Command line interface for node.js
npm install @kearisp/cliimport {Cli} from "@kearisp/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);
});<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(() => {
return cli.completionScript();
});source <(your-script.js completion script)