0.4.2 • Published 17 days ago

@battis/qui-cli v0.4.2

Weekly downloads
-
License
GPL-3.0
Repository
-
Last release
17 days ago

@battis/qui-cli

Quickly (get it?) build a CLI app

npm version Module type: ESM

Install

npm i @battis/qui-cli

Usage

This is an ESM module that depends on other ESM modules, and so really can only feasibly be imported by ESM modules.

import cli from '@battis/qui-cli';

const args = cli.init();
const name = await cli.prompts.input({ message: 'What is your name?' });
cli.log.info(`Hello, ${name}.`);
const spinner = cli.spinner('Wait a sec');
setTimeout(() => spinner.stop(), 1000);

API

cli.init(config?: Partial<Options>)

All configs have default values or can be ignored

type Options = {
  env: {
    // application root, defaults to cli.appPath()
    root: string;

    // wwhether or not to load .env file
    // accepts boolean to load from `root` or path to .env file
    // default `true`
    loadDotEnv: boolean | string;

    // whether to set the process current working directory to `root`
    // default true
    setRootAsCurrentWorkingDirectory: boolean;
  };

  /**
   * CLI argument config as in jackspeak
   * @see https://github.com/isaacs/jackspeak#usage
   */
  args: {
    envPrefix: string;
    requirePositionals: boolean | number; // number of (or if) positional args required
    options: OptionsConfig; // jack.opt()
    optionLists: OptionListsConfig; // jack.optList()

    // default includes --help/-h and --commands
    flags: FlagsConfig; // jack.flag()
  };

  shell: {
    // display shell command stdout (default `true`)
    silent: boolean;

    // show cli.shell.exec() commands in console (default `false`)
    showCommands: boolean;
  };

  log: {
    // path to log file (default `undefined`)
    logFilePath?: string;

    // log level to display in stdout (default `info`)
    stdoutLevel: string;

    // log level to display in log file (default `all`)
    fileLevel: string;

    /**
     * default `cli.log.DefaultLevels`
     * (i.e. all, trace, debug, info, warning, error, fatal)
     * @see https://github.com/winstonjs/winston#using-custom-logging-levels
     */
    levels: CustomLevels;
  };
};

cli.appPath(): string

Report the root of the current project, per app-root-path.

cli.colors: chalk

Pass-through to the chalk terminal string styling API.

cli.log.get(): winston.Logger

Pass-through to winston logger API. A default logger to the console is created by cli.init(). The default log levels are: none, fatal, error, warning, info, debug, trace, all, with convenience methods for all of them:

`cli.prompts: prompts

Pass-through to @inquirer/prompts user input API.

cli.shell: shell

Pass-through to shelljs unix shell API.

cli.spinner: Ora

Pass-through to ora terminal spinner/progress bar API.

cli.validators

Collection of validators for use with cli.prompts (or other places where validation of text is useful).

0.4.2

17 days ago

0.4.1

22 days ago

0.4.0

5 months ago

0.3.8

5 months ago

0.3.9

5 months ago

0.3.7

6 months ago

0.3.6

9 months ago

0.3.5

10 months ago

0.3.4

10 months ago

0.3.3

10 months ago

0.3.2

10 months ago

0.3.1

10 months ago

0.3.0

10 months ago

0.3.0-18

10 months ago

0.3.0-17

10 months ago

0.3.0-16

10 months ago

0.3.0-15

10 months ago

0.3.0-14

10 months ago

0.3.0-13

10 months ago

0.3.0-12

10 months ago

0.3.0-11

10 months ago

0.3.0-10

10 months ago

0.3.0-9

10 months ago

0.3.0-8

10 months ago

0.3.0-7

10 months ago

0.3.0-6

10 months ago

0.3.0-5

10 months ago

0.3.0-4

10 months ago

0.3.0-3

10 months ago

0.3.0-2

10 months ago

0.3.0-1

10 months ago

0.3.0-0

10 months ago

0.2.6-0

10 months ago

0.2.5

10 months ago

0.2.4

10 months ago

0.2.4-3

10 months ago

0.2.4-2

10 months ago

0.2.4-1

10 months ago

0.2.4-0

10 months ago

0.2.3

10 months ago

0.2.2

10 months ago

0.2.2-0

10 months ago

0.2.1

10 months ago

0.2.0

10 months ago

0.1.10

10 months ago

0.1.9

10 months ago

0.1.8

10 months ago

0.1.7

11 months ago

0.1.6

11 months ago

0.1.0

11 months ago