1.6.1 • Published 4 years ago

@care-for/yargs-unparser v1.6.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

@care-for/yargs-unparser

npm travis-ci codecov vulnerabilities downloads

dependencies devDependencies peerDependencies

install-size code style: prettier

@care-for/yargs-unparser is a fork of yargs-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 generated
  • default: The default values so that the options with default values are omitted
  • command: 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

License

MIT License

1.6.1

4 years ago

1.6.1-rc.2

4 years ago

1.6.1-rc.1

4 years ago

1.6.1-rc.0

4 years ago