0.0.10 • Published 1 year ago

@mongodb-model/cli v0.0.10

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

CLI

Cli helps in building CLIs and styling terminals. If you are not building a cli application, then you most likely do not need it. Cli is a duplex stream, specifically a Transform stream with some functionalities added. Primarily, it uses full power of the NodeJs Transform Stream API. In other words, everything you can do with NodeJs Transform API you can do with cli! Cli is centrally very highly event driven. Its common use is by extension or by using object destruction to get the instance methods needed.

Installation

$ yarn add @mongodb-model/cli

or

$ npm i @mongodb-model/cli

Simple Usage Examples

Making api request (http request)

const CLI = require('@mongodb-model/cli');
const cli = new CLI();
cli.apiGet(); //base.apiGet(your api endpoint)
cli.on('apiGet', data => console.log(data));
cli.on('apiGet-error', error => console.error(error));
 

By extension

class MyWonderfulClass extends require('@mongodb-model/cli') {

    constructor(...arrayOfObjects) {

    super({ objectMode: true, encoding: "utf-8", autoDestroy: true });

    arrayOfObjects.forEach(option => {
        if(Object.keys(option).length > 0){
            Object.keys(option).forEach((key) => { if(!this[key]) this[key] = option[key];})
        }
    });

    this.autobind(MyWonderfulClass);
    this.autoinvoker(MyWonderfulClass);
    this.setMaxListeners(Infinity);
  }
};

cli methods usage example

const CLI = require('@mongodb-model/cli');

// You may use object destruction to get methods needed from the instance.
const { centered, description,verticalSpace,texAligner} = new CLI

// example man page commands with their definitions
const manCommand = () => ({
  man: "Example App Command Line Interface (CLI) Manual",
  help: 'Alias of the "man" command',
  methods: "List all methods on Example App",
  events: "Events emitted by Example App",
})

// man function 
const man = () => {
  console.clear();
  const docs = `\x1b[36mNAME\x1b[0m
\x1b[36mman\x1b[0m - Example App Command Line Interface (CLI) Manual 

\x1b[36mSYPNOSIS\x1b[0m
\x1b[36mman\x1b[0m [\x1b[36mman\x1b[0m|\x1b[36mhelp\x1b[0m|\x1b[36mmethods\x1b[0m|\x1b[36mevent\x1b[0m|\x1b[36mclass\x1b[0m] 

\x1b[36mDESCRIPTION\x1b[0m
Example App Command Line Interface (CLI) Manual.
`;

// use instance methods for styling 
  centered(`\x1b[32mEXAMPLE APP COMMAND LINE INTERFACE AND USAGE MANUAL\x1b[0m`);
  description(docs);
  verticalSpace(2);

  const options = {
    pad: 22,
    position: process.stdout.columns,
    hline: false,
    keyColor: "36",
    valueColor: "37",
  };
  texAligner(options, manCommand());
  console.log();
}

// ran function to ouput example man page in your terminal
man()

Author's Info

WebsiteNPMGithubGitlabBlogLinkedInFacebookTwitterInstagram
WebsiteNPMGithubGitlabBlogLinkedInFacebookTwitterInstagram