Wondering what’s next for npm?Check out our public roadmap! »

    dargs
    TypeScript icon, indicating that this package has built-in type declarations

    8.0.0 • Public • Published

    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'],          // Values in '_' will be appended to the end of the generated argument list
    	'--': ['separated', 'option'],  // Values in '--' will be put at the very end of the argument list after the escape option (`--`)
    	foo: 'bar',
    	hello: true,                    // Results in only the key being used
    	cake: false,                    // Prepends `no-` before the key
    	camelCase: 5,                   // CamelCase is slugged to `camel-case`
    	multiple: ['value', 'value2'],  // Converted to multiple arguments
    	pieKind: 'cherry',
    	sad: ':('
    };
    
    const excludes = ['sad', /.*Kind$/];  // Excludes and includes accept regular expressions
    const includes = ['camelCase', 'multiple', 'sad', /^pie.*/];
    const aliases = {file: 'f'};
    
    console.log(dargs(object, {excludes}));
    /*
    [
    	'--foo=bar',
    	'--hello',
    	'--no-cake',
    	'--camel-case=5',
    	'--multiple=value',
    	'--multiple=value2',
    	'some',
    	'option',
    	'--',
    	'separated',
    	'option'
    ]
    */
    
    console.log(dargs(object, {excludes, includes}));
    /*
    [
    	'--camel-case=5',
    	'--multiple=value',
    	'--multiple=value2'
    ]
    */
    
    
    console.log(dargs(object, {includes}));
    /*
    [
    	'--camel-case=5',
    	'--multiple=value',
    	'--multiple=value2',
    	'--pie-kind=cherry',
    	'--sad=:('
    ]
    */
    
    
    console.log(dargs({
    	foo: 'bar',
    	hello: true,
    	file: 'baz'
    }, {aliases}));
    /*
    [
    	'--foo=bar',
    	'--hello',
    	'-f', 'baz'
    ]
    */

    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}));
    /*
    [
    	'--foo', 'bar'
    ]
    */
    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}));
    //=> ['-a']
    
    console.log(dargs({a: true}, {shortFlag: false}));
    //=> ['--a']
    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'}));
    //=> ['--foo-bar', 'baz']
    
    console.log(dargs({fooBar: 'baz'}, {allowCamelCase: true}));
    //=> ['--fooBar', 'baz']

    Get professional support for this package with a Tidelift subscription
    Tidelift helps make open source sustainable for maintainers while giving companies
    assurances about security, maintenance, and licensing for their dependencies.

    Install

    npm i dargs

    DownloadsWeekly Downloads

    2,986,844

    Version

    8.0.0

    License

    MIT

    Unpacked Size

    11.9 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar