@untool/yargs
@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
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 info
server listening at http://localhost:8080
@untool/yargs
does not define any commands of its own, but takes care of basically setting up yargs
and logging to stdout
and stderr
. You can call un
with an optional -l
or --log
command line argument with one of the following values to control its output: debug
, info
, warn
, error
, silent
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) => {},
});
}
};