Skip to content

Examples

Ashish Uttam edited this page Jul 26, 2020 · 5 revisions

Example 1

Creating Simple CLI Program that accepts command-line arguments

Run this example here

const { Program } = require('@auttam/easycli');

class HelloWorld extends Program {

    main(message, $options){
        // use default message if message not from the cli
        let greetMessage = message || "Hello World!";        

        // check for the underline options
        if($options.$has("u", "U", "underline")) {
            greetMessage = `\u001b[4m${greetMessage}\u001b[0m`;
        }

        // check of the color options
        if($options.$has("c", "C", "color")) {
            greetMessage = `\u001b[32m${greetMessage}\u001b[0m`;
        }

        console.log(greetMessage);
    }
}

// run the program
Program.run(new HelloWorld());

Example 2

Create a CLI Program with custom configuration that accepts 2 commands Run this example here

const { Program } = require("@auttam/easycli");

// enable commands
Program.settings({
  enableCommands: true,
});

class SimpleCalculator extends Program {
  divideCommand(dividend, divisor) {
    if (isNaN(dividend) || isNaN(divisor)) {
      console.log("dividend and divisor must be numbers");
      return;
    }
    console.log(`Divide: ${dividend}/${divisor} = ${dividend / divisor}`);
  }

  addCommand(...numbers) {
    // due to configuration added for numbers below
    // number array will never be empty
    if (numbers.some((item) => isNaN(item))) {
      console.log("All parameters must be numbers");
      return;
    }

    const total = numbers.reduce((sum, number) => sum + number);
    console.log(`Add: ${numbers.join("+")} = ${total}`);
  }
}

Program.run(
  new SimpleCalculator({
    commands: [
      {
        name: "add",
        method: "addCommand",
        params: [
          {
            name: "numbers",
            required: true,
          },
        ],
      },
    ],
  })
);

Clone this wiki locally