@care-for/yargs-unparser v1.6.1
@care-for/yargs-unparser
@care-for/yargs-unparser
is a fork ofyargs-unparser
, because there are a lot of unfixed vulnerabilities and no acitve maintainers anymore.
Converts back a yargs
argv object to its original array form.
Probably the unparser word doesn't even exist, but it sounds nice and goes well with yargs-parser.
The code originally lived in MOXY's GitHub but was later moved here for discoverability.
Installation
$ npm install @care-for/yargs-unparser
Usage
const parse = require("yargs-parser");
const unparse = require("@care-for/yargs-unparser");
const argv = parse(["--no-boolean", "--number", "4", "--string", "foo"], {
boolean: ["boolean"],
number: ["number"],
string: ["string"],
});
// { boolean: false, number: 4, string: 'foo', _: [] }
const unparsedArgv = unparse(argv);
// ['--no-boolean', '--number', '4', '--string', 'foo'];
The second argument of unparse
accepts an options object:
alias
: The aliases so that duplicate options aren't generateddefault
: The default values so that the options with default values are omittedcommand
: The command first argument so that command names and positional arguments are handled correctly
Example with command
options
const yargs = require("yargs");
const unparse = require("@care-for/yargs-unparser");
const argv = yargs
.command("my-command <positional>", "My awesome command", (yargs) =>
yargs
.option("boolean", { type: "boolean" })
.option("number", { type: "number" })
.option("string", { type: "string" })
)
.parse([
"my-command",
"hello",
"--no-boolean",
"--number",
"4",
"--string",
"foo",
]);
// { positional: 'hello', boolean: false, number: 4, string: 'foo', _: ['my-command'] }
const unparsedArgv = unparse(argv, {
command: "my-command <positional>",
});
// ['my-command', 'hello', '--no-boolean', '--number', '4', '--string', 'foo'];
Caveats
The returned array can be parsed again by yargs-parser
using the default configuration. If you used custom configuration that you want @care-for/yargs-unparser
to be aware, please fill an issue.
If you coerce
in weird ways, things might not work correctly.
Tests
$ npm test
$ npm test -- --watch
during development