@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())
    );

    Keywords

    none

    Install

    npm i @byte-this/js-cli

    DownloadsWeekly Downloads

    63

    Version

    1.0.30

    License

    ISC

    Unpacked Size

    61.6 kB

    Total Files

    56

    Last publish

    Collaborators

    • byte-this