dargs
Reverse minimist
. Convert an object of options into an array of command-line arguments.
Useful when spawning command-line tools.
Install
$ npm install dargs
Usage
import dargs from 'dargs';
const object = {
_: ['some', 'option'],
'--': ['separated', 'option'],
foo: 'bar',
hello: true,
cake: false,
camelCase: 5,
multiple: ['value', 'value2'],
pieKind: 'cherry',
sad: ':('
};
const excludes = ['sad', /.*Kind$/];
const includes = ['camelCase', 'multiple', 'sad', /^pie.*/];
const aliases = {file: 'f'};
console.log(dargs(object, {excludes}));
console.log(dargs(object, {excludes, includes}));
console.log(dargs(object, {includes}));
console.log(dargs({
foo: 'bar',
hello: true,
file: 'baz'
}, {aliases}));
API
dargs(object, options?)
object
Type: object
Object to convert to command-line arguments.
options
Type: object
excludes
Type: Array<string | RegExp>
Keys or regex of keys to exclude. Takes precedence over includes
.
includes
Type: Array<string | RegExp>
Keys or regex of keys to include.
aliases
Type: object
Maps keys in object
to an aliased name. Matching keys are converted to arguments with a single dash (-
) in front of the aliased key and the value in a separate array item. Keys are still affected by includes
and excludes
.
useEquals
Type: boolean
Default: true
Setting this to false
makes it return the key and value as separate array items instead of using a =
separator in one item. This can be useful for tools that doesn't support --foo=bar
style flags.
import dargs from 'dargs';
console.log(dargs({foo: 'bar'}, {useEquals: false}));
shortFlag
Type: boolean
Default: true
Make a single character option key {a: true}
become a short flag -a
instead of --a
.
import dargs from 'dargs';
console.log(dargs({a: true}));
console.log(dargs({a: true}, {shortFlag: false}));
ignoreTrue
Type: boolean
Default: false
Exclude true
values. Can be useful when dealing with argument parsers that only expect negated arguments like --no-foo
.
ignoreFalse
Type: boolean
Default: false
Exclude false
values. Can be useful when dealing with strict argument parsers that throw on unknown arguments like --no-foo
.
allowCamelCase
Type: boolean
Default: false
By default, camel-cased keys will be hyphenated. Enabling this will bypass the conversion process.
import dargs from 'dargs';
console.log(dargs({fooBar: 'baz'}));
console.log(dargs({fooBar: 'baz'}, {allowCamelCase: true}));