@byte-this/js-cli
v1.0.30
Published
Functionality to streamline the process of scripting for the console with javascript
Downloads
46
Readme
js-cli-scripting
Streamline the process of creating a CLI using javascript / typescript.
For a demo + instructions on how to use: https://bytethisstore.com/articles/pg/js-cli
Getting Started
This readme will outline how to use this project. If you'd like to view an example, or just jump in, the example-cli.ts script contains a basic cli application with a few sample commands.
How To Use
- Create one or more commands for the program to use.
- Setup the application to use these commands with optional arguments for logging and requesting user input.
- Let the CliApplication class orchestrate the rest.
const TestCommand: iCliCommand = {
name: "Test Command", //name for internal use
displayText: "Print some test text to the console",
tokens: ["test-print", "t-p"],
requiredParams: [
{
name: "txt",
displayText: "Text to print",
},
],
execute: async (
params: { txt: string },
cliOutputter: iCliOutputter
): Promise<void> => {
cliOutputter.pushMessage("Txt from user ==>", params.txt);
},
};
With this kind of definition, the program will request everything under requiredParams from the user, then execute the command and pass in those required commands.
Then, we setup our application runner:
const app = new CliApplication();
app.onQuit(() => {
process.exit(0);
});
app.startApp(
{
startup: {
initialOutput: "Welcome to the example application",
},
},
new ArrayCliCommandsCollection(commands),
[...process.argv].slice(2),
new ConsoleOutputter(),
new ConsoleUserInputRequestor(new ConsoleOutputter())
);