sfcode
An Online Competing and Development Environment
|
The mighty option parser used by yargs.
visit the yargs website for more examples, and thorough usage instructions.
or parse a string!
Convert an array of mixed types before passing to yargs-parser
:
Parses command line arguments returning a simple mapping of keys and values.
expects:
args
: a string or array of strings representing the options to parse.opts
: provide a set of hints indicating how args
should be parsed:opts.alias
: an object representing the set of aliases for a key: ‘{alias: {foo: ['f’]}}. *
opts.array<tt>: indicate that keys should be parsed as an array:{array: ['foo', 'bar']}`.. *
opts.boolean<tt>: arguments should be parsed as booleans:{boolean: ['x', 'y']}. *
opts.coerce`: provide a custom synchronous function that returns a coerced value from the argument provided (or throws an error). For arrays the function is called only once for the entire array:{coerce: {foo: function (arg) {return modifiedArg}}}
.opts.config
: indicate a key that represents a path to a configuration file (this file will be loaded and parsed).opts.configObjects
: configuration objects to parse, their properties will be set as arguments:. *
opts.configuration<tt>: provide configuration options to the yargs-parser (see: [configuration](#configuration)). *opts.count<tt>: indicate a key that should be used as a counter, e.g.,-vvv=
{v: 3}. *
opts.default<tt>: provide default values for keys:{default: {x: 33, y: 'hello world!'}}. *
opts.envPrefix<tt>: environment variables (process.env<tt>) with the prefix provided should be parsed. *opts.narg<tt>: specify that a key requiresnarguments:
{narg: {x: 2}}. *
opts.normalize<tt>:path.normalize()will be applied to values set to this key. *
opts.number<tt>: keys should be treated as numbers. *opts.string<tt>: keys should be treated as strings (even if they resemble a number-x 33`).returns:
obj
: an object representing the parsed value of args
key/value
: key value pairs for each argument and their aliases._
: an array representing the positional arguments.--
: an array with arguments after the end-of-options flag --
.Parses a command line string, returning detailed information required by the yargs engine.
expects:
args
: a string or array of strings representing options to parse.opts
: provide a set of hints indicating how args
, inputs are identical to ‘require('yargs-parser’)(args, opts={})`.returns:
argv
: an object representing the parsed value of args
key/value
: key value pairs for each argument and their aliases._
: an array representing the positional arguments.--
: an array with arguments after the end-of-options flag --
.error
: populated with an error object if an exception occurred during parsing.aliases
: the inferred list of aliases built by combining lists in opts.alias
.newAliases
: any new aliases added via camel-case expansion:boolean
: { fooBar: true }
defaulted
: any new argument created by opts.default
, no aliases included.boolean
: { foo: true }
configuration
: given by default settings and opts.configuration
.The yargs-parser applies several automated transformations on the keys provided in args
. These features can be turned on and off using the configuration
field of opts
.
true
.short-option-groups
.Should a group of short-options be treated as boolean flags?
if disabled:
true
.camel-case-expansion
.Should hyphenated arguments be expanded into camel-case aliases?
if disabled:
true
dot-notation
Should keys that contain .
be treated as objects?
if disabled:
true
parse-numbers
Should keys that look like numbers be treated as such?
if disabled:
true
boolean-negation
Should variables prefixed with --no
be treated as negations?
if disabled:
false
combine-arrays
Should arrays be combined when provided by both command line arguments and a configuration file.
true
duplicate-arguments-array
Should arguments be coerced into an array when duplicated:
if disabled:
true
flatten-duplicate-arrays
Should array arguments be coerced into a single array when duplicated:
if disabled:
true
greedy-arrays
Should arrays consume more than one positional argument following their flag.
if disabled:
Note: in v18.0.0
we are considering defaulting greedy arrays to false
.
false
nargs-eats-options
Should nargs consume dash options as well as positional arguments.
no-
negation-prefix
The prefix to use for negated boolean variables.
if set to quux
:
false
.populate--
Should unparsed flags be stored in --
or _
.
If disabled:
If enabled:
false
.set-placeholder-key
.Should a placeholder be added for keys not set via the corresponding CLI argument?
If disabled:
If enabled:
false
.halt-at-non-option
.Should parsing stop at the first positional argument? This is similar to how e.g. ssh
parses its command line.
If disabled:
If enabled:
false
strip-aliased
Should aliases be removed before returning results?
If disabled:
If enabled:
false
strip-dashed
Should dashed keys be removed before returning results? This option has no effect if camel-case-expansion
is disabled.
If disabled:
If enabled:
false
unknown-options-as-args
Should unknown options be treated like regular arguments? An unknown option is one that is not configured in opts
.
If disabled
If enabled
The yargs project evolves from optimist and minimist. It owes its existence to a lot of James Halliday's hard work. Thanks substack beep boop \o/
ISC