8.1.0 • Published 3 years ago

dargs v8.1.0

Weekly downloads
3,172,216
License
MIT
Repository
github
Last release
3 years ago

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']
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'}));
//=> ['--foo-bar', 'baz']

console.log(dargs({fooBar: 'baz'}, {allowCamelCase: true}));
//=> ['--fooBar', 'baz']

git-raw-commitsarchetype-librarycoge-generatoreasy-select-rnreact-native-bluetooth2killi8n-react-native-fast-imagehierarchy-cliweb-deployamodgairscanairscan-examplereact-native-esc-pos-sahaab@borisovart/atol-kkt-module@frxf/frxfdeneme323112@ntt_app/react-native-custom-notificationreact-native-covid-sdk@jukeboxbot/youtube-dl-execmyth-scsslint@jttechnic/interpreterreact-native-printer-brothersreact-native-shekhar-bridge-testcogoportutils@oiti/documentoscopy-react-nativequoc-test@infinitebrahmanuniverse/nolb-darluminos-ui-core@everything-registry/sub-chunk-1442jawwy-sdkjawwy_gamification_releasetube-execreact-native-sphereuisphereuijawwy_libraryreact-native-credit-card-pkgreact-native-jawwy_sampledemo-test-scrn@distube/youtube-dl@distube/yt-dlp@dotconf-pro/dotconf-pro@dotconf-pro/dotenv@devsnowflake/youtube-dl-exec@dsmith3210/youtube-dl-execdigital-keyboard-demosf_yoshifawaterak-online-paymentfawatrak-online-paymentfie-npmfile-fillerfirebase-sign-in-with-ethereumfixed_form_builderfluent.adflow.reactnativesdkfluent.adflow.reactnativesdk-alphafm-tasca-electron-builderfmslflipscriptfront-end-engineeringfront-and-backdiscordjs-con-selfdogandev-simple-toastdotenv-coredotex-plugindiscord.js-byconember-cli-deploy-storybookember-cli-deploy-shember-cli-s3-syncexargsevanutils@hbglobal/react-native-actions-shortcuts@hawkingnetwork/react-native-tab-viewibc-script@geeky-apo/react-native-advanced-clipboardhtml-pages@hsuting/yeoman-generator@hemith/react-native-tnk@hela/core@hieuquang2212/form@garment/plugin-runner-lighthousehornet-js-builderhornet-js-builder-newjamuskalimegypyeasyplayer-mygrunt-contrib-compassgrunt-contrib-compass-sourcemapgriffin-ui-librarygrunt-adam-compass@enkeledi/react-native-week-month-date-pickergulp-buntogulp-helper-utilgrunt-recursive-compassgrunt-wellingtongrunt-premailergrunt-slim-htmlgrunt-contrib-sassgrunt-contrib-hamlgrunt-cssondietgrunt-wavygrunt-nuget-installgrunt-nuget3-install
8.1.0

3 years ago

8.0.0

3 years ago

7.0.0

5 years ago

6.1.0

5 years ago

6.0.0

6 years ago

5.1.0

8 years ago

5.0.1

8 years ago

5.0.0

8 years ago

4.1.0

8 years ago

4.0.1

9 years ago

4.0.0

9 years ago

3.0.1

9 years ago

3.0.0

9 years ago

2.1.0

9 years ago

2.0.3

10 years ago

2.0.2

10 years ago

2.0.1

10 years ago

2.0.0

10 years ago

1.0.0

10 years ago

0.1.0

11 years ago