@byte-this/js-cli
TypeScript icon, indicating that this package has built-in type declarations

1.0.30 • Public • Published

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

  1. Create one or more commands for the program to use.
  2. Setup the application to use these commands with optional arguments for logging and requesting user input.
  3. 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())
);

Readme

Keywords

none

Package Sidebar

Install

npm i @byte-this/js-cli

Weekly Downloads

0

Version

1.0.30

License

ISC

Unpacked Size

61.6 kB

Total Files

56

Last publish

Collaborators

  • byte-this