Join us to discuss the challenges, solutions and best practices for in-house JavaScript code sharing. Tuesday, 12/17 at 10am PT/1pm ET.Sign up here »

@quase/cli

0.3.0 • Public • Published

@quase/cli

About

A simple cli helper.

Based and adapted from meow, and includes update-notifier, plus some features:

  • We change the update notifier message if Yarn is detected.
  • Passing a configFiles value automates the requiring of a config file. The user will be able to override the default using --config=another-file.js.
  • Passing a configKey value automates the requiring of a config object from the package.json file, if a config file is not available.
  • Support for @quase/config's schema and defaults application.

Usage example

bin/index.js

#!/usr/bin/env node
 
require( "@quase/cli" ).default(
  ( {
    input, // Array with non-flag arguments
    options, // Flags, config, and defaults all applied
    flags, // The flags only (without defaults applied yet)
    config, // The config object only
    configLocation, // The absolute path of the config file found or "pkg"
    pkg, // The package.json object
    help, // The help text used with --help
    showHelp, // showHelp([code=2]) - Show the help text and exit with code
    showVersion, // showVersion() - Show the version text and exit
  } ) => {
 
  },
  {
    // If you pass an array, we try to find the first file
    configFiles: "sample.config.js",
    configKey: "sample",
    // Function or just the object. For more info, see @quase/config
    schema( t ) {
      return {
        someFlagName: {
          type: "boolean",
          description: "",
          alias: "s",
          default: false
        },
        someObject: {
          type: t.object( {
            someProp: {
              type: "number"
            }
          } )
        }
      };
    },
    // false to disable notification
    notifier: {
      options: {}, // UpdateNotifier options
      notify: {} // .notify() options
    },
    // Infer the argument type. Default: false
    inferType: false,
    // The help text used with --help. Default: generated automatically from schema
    help: "",
    // Usage example. Used when generating the help text
    usage: "",
    // Description to show above the help text. Default: The package.json "description" property
    description: undefined,
    // Set a custom version output. Default: The package.json "version" property
    version: undefined,
    // Automatically show the help text when the --help flag is present
    autoHelp: true,
    // Automatically show the version text when the --version flag is present
    autoVersion: true,
    // Custom arguments object
    argv: process.argv.slice( 2 )
  }
);

package.json

{
  "bin": {
    "sample": "bin/index.js"
  },
}

Copy-paste example

bin/index.js

#!/usr/bin/env node
 
require( "@quase/cli" ).default( ( { options, input } ) => {
  require( "../dist" ).default( options, input );
}, {
  usage: "$ sample",
  schema: {},
  configFiles: "sample.config.js",
  configKey: "sample"
} );

Keywords

none

Install

npm i @quase/cli

DownloadsWeekly Downloads

6

Version

0.3.0

License

MIT

Unpacked Size

20.5 kB

Total Files

7

Last publish

Collaborators

  • avatar