JSPM

  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q105746F
  • License MIT

untool yargs mixin

Package Exports

  • @untool/yargs

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@untool/yargs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@untool/yargs

npm

@untool/yargs is a core mixin providing untool's actual command line interface, allowing other mixins to define their own commands. These custom commands will work exactly as those defined by untool's own modules and can be called using a local or global un executable.

Installation

$ yarn add @untool/yargs # OR npm install @untool/yargs

CLI

@untool/yargs can either be used with untool's global command line interface or directly, within package.json scripts of the project it is installed in: it locally installs an un command.

$ un
Usage: un <command> [options]

Commands:
  un serve    Serve foo
  un start    Build and serve foo
  un build    Build foo
  un develop  Serve foo in watch mode

Options:
  --version   Show version number                                     [boolean]
  --help, -h  Show help                                               [boolean]

$ un start
foo listening at http://localhost:8080
foo built successfully in 1.4s

@untool/yargs does not define any commands of its own, but takes care of basically setting up yargs. In addition to the arguments defined by specific commands, it accepts --config:* arguments. Using these, options defined by active presets can be overridden.

$ un start --config:port 9090
foo listening at http://localhost:9090
foo built successfully in 1.3s

API

@untool/yargs exposes a couple of mixin hooks other mixins can implement, allowing them to alter or extend its functionality. These hooks will be called either by @untool/yargs itself or by others.

registerCommands(yargs) (pipe)

This is the most relevant hook provided by @untool/yargs: it enables other mixins to register their respective commands. Implementations of this mixin method will receive two arguments: a yargs instance and the command line arguments @untool/yargs received. Implementations need to return the yargs instance that they were called with.

const { Mixin } = require('@untool/core');

module.exports = class FooMixin extends Mixin {
  registerCommands(yargs) {
    return yargs.command({
      command: 'foo',
      handler: (argv) => {},
    });
  }
};