Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/dargs
Reverse minimist. Convert an object of options into an array of command-line arguments
https://github.com/sindresorhus/dargs
Last synced: about 1 month ago
JSON representation
Reverse minimist. Convert an object of options into an array of command-line arguments
- Host: GitHub
- URL: https://github.com/sindresorhus/dargs
- Owner: sindresorhus
- License: mit
- Created: 2013-04-18T22:51:22.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2023-02-19T09:21:30.000Z (over 1 year ago)
- Last Synced: 2024-04-14T04:18:49.316Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 61.5 KB
- Stars: 182
- Watchers: 11
- Forks: 23
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Funding: .github/funding.yml
- License: license
- Security: .github/security.md
Awesome Lists containing this project
README
# dargs
> Reverse [`minimist`](https://github.com/minimistjs/minimist). Convert an object of options into an array of command-line arguments.
Useful when spawning command-line tools.
## Install
```
$ npm install dargs
```## Usage
```js
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`
Keys or regex of keys to exclude. Takes precedence over `includes`.
##### includes
Type: `Array`
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.
```js
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`.
```js
import dargs from 'dargs';console.log(dargs({a: true}));
//=> ['-a']console.log(dargs({a: true}, {shortFlag: false}));
//=> ['--a']
```##### 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.
```js
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.